This is an R Markdown Notebook. When you execute code within the notebook, the results appear beneath the code.

Try executing this chunk by clicking the Run button within the chunk or by placing your cursor inside it and pressing Cmd+Shift+Enter.

plot(cars)

Add a new chunk by clicking the Insert Chunk button on the toolbar or by pressing Cmd+Option+I.

When you save the notebook, an HTML file containing the code and output will be saved alongside it (click the Preview button or press Cmd+Shift+K to preview the HTML file).

The preview shows you a rendered HTML copy of the contents of the editor. Consequently, unlike Knit, Preview does not run any R code chunks. Instead, the output of the chunk when it was last run in the editor is displayed.

library(ggplot2) cc <- read.csv(“a2/UCI_Credit_Card.csv”) cc\(default.payment.next.month <- factor(cc\)default.payment.next.month,levels=c(0,1), labels=c(“No”,“Yes”))

R version 4.0.3 (2020-10-10) – “Bunny-Wunnies Freak Out” Copyright (C) 2020 The R Foundation for Statistical Computing Platform: x86_64-apple-darwin17.0 (64-bit)

R is free software and comes with ABSOLUTELY NO WARRANTY. You are welcome to redistribute it under certain conditions. Type ‘license()’ or ‘licence()’ for distribution details.

Natural language support but running in an English locale

R is a collaborative project with many contributors. Type ‘contributors()’ for more information and ‘citation()’ on how to cite R or R packages in publications.

Type ‘demo()’ for some demos, ‘help()’ for on-line help, or ‘help.start()’ for an HTML browser interface to help. Type ‘q()’ to quit R.

[Workspace loaded from ~/Desktop/INFO 659/.RData]

dataName <- read.table(“iris.csv”, header=TRUE, sep=”,”) Error: unexpected input in “dataName <- read.table(“” dataName <- read.table(“iris.csv”, header=TRUE, sep=”,”) Error: unexpected input in “dataName <- read.table(“” dataName <- read.table(iris.csv, header=TRUE, sep=”,”) Error: unexpected input in “dataName <- read.table(iris.csv, header=TRUE, sep=”" iris <- read.csv(“~/Desktop/INFO 659/iris.csv”) View(iris) head(species, 5) Error in head(species, 5) : object ‘species’ not found head(sepal_length, 5) Error in head(sepal_length, 5) : object ‘sepal_length’ not found head(iris,5) sepal_length sepal_width petal_length petal_width species 1 5.1 3.5 1.4 0.2 setosa 2 4.9 3.0 1.4 0.2 setosa 3 4.7 3.2 1.3 0.2 setosa 4 4.6 3.1 1.5 0.2 setosa 5 5.0 3.6 1.4 0.2 setosa index <- read.csv(“~/Desktop/INFO 659/index.csv”) View(index) head(index,5) Year Month Day Federal.Funds.Target.Rate Federal.Funds.Upper.Target 1 1954 7 1 NA NA 2 1954 8 1 NA NA 3 1954 9 1 NA NA 4 1954 10 1 NA NA 5 1954 11 1 NA NA Federal.Funds.Lower.Target Effective.Federal.Funds.Rate 1 NA 0.80 2 NA 1.22 3 NA 1.06 4 NA 0.85 5 NA 0.83 Real.GDP..Percent.Change. Unemployment.Rate Inflation.Rate 1 4.6 5.8 NA 2 NA 6.0 NA 3 NA 6.1 NA 4 8.0 5.7 NA 5 NA 5.3 NA hist(index\(Inflation.Rate, breaks=10, xlab=”X Label”, main=”Figure Label”) Error: unexpected input in "hist(index\)Inflation.Rate, breaks=10, xlab=”" hist(index\(Inflation.Rate, breaks=10, xlab="X Label"", main="Figure Label") Error: unexpected string constant in "hist(index\)Inflation.Rate, breaks=10, xlab=“X Label”“, main=”" hist(index\(Inflation.Rate, breaks=10, xlab="X Label"", main="Figure Label"") Error: unexpected string constant in "hist(index\)Inflation.Rate, breaks=10, xlab=“X Label”“, main=”" hist(index\(Inflation.Rate, breaks=10, xlab='X Label'', main='Figure Label'') Error: unexpected string constant in "hist(index\)Inflation.Rate, breaks=10, xlab=‘X Label’‘, main=’" hist(index\(Year, breaks=10, xlab="X Label"", main="Figure Label") Error: unexpected string constant in "hist(index\)Year, breaks=10, xlab=“X Label”“, main=”" hist(index\(Inflation.Rate) hist(index\)Inflation.Rate, breaks=10) hist(index\(Inflation.Rate, breaks=10, xlab="X Label"") + hist(index\)Inflation.Rate, breaks=10, xlab=“X Label”“, main=”Figure Label“) Error: unexpected string constant in:”hist(index\(Inflation.Rate, breaks=10, xlab="X Label"") hist(index\)Inflation.Rate, breaks=10, xlab="" hist(index\(Inflation.Rate, breaks=10, xlab="X Label"", main='Figure Label') + + end + complete + "" Error: unexpected string constant in: "complete "" hist(log10(index\)Inflation.Rate), breaks=10, xlab=”..”, main=”..”) Error: unexpected input in “hist(log10(index\(Inflation.Rate), breaks=10, xlab=”" hist(log10(dataName\)attributeName), breaks=10, xlab=”X Label"“, main=”Figure Label“) Error: unexpected string constant in”hist(log10(dataName\(attributeName), breaks=10, xlab="X Label"", main="" hist(log10(index\)Inflation.Rate), breaks=10, xlab=“X Label”, main=“Figure Label”) plot(index\(Year, index\)Inflation.Rate, xlab=“Time”, ylab=“Inflation”) myline <- lm(index\(Inflation.Rate ~ index\)Year) points(index\(Year, myline\)coefficients[1] + myline\(coefficients[2] * index\)Year, type=”l”, col=”red”) Error: unexpected input in “points(index\(Year, myline\)coefficients[1] + myline\(coefficients[2] * index\)Year, type=”" points(index\(Year, myline\)coefficients[1] + myline\(coefficients[2] * index\)Year, type=“l”, col=“red”) install.packages(“rmarkdown”) Error in install.packages : Updating loaded packages

Restarting R session…

install.packages(“rmarkdown”)

There is a binary version available but the source version is later: binary source needs_compilation rmarkdown 2.3 2.5 FALSE

installing the source package ‘rmarkdown’

trying URL ‘https://cran.rstudio.com/src/contrib/rmarkdown_2.5.tar.gz’ Content type ‘application/x-gzip’ length 3203415 bytes (3.1 MB) ================================================== downloaded 3.1 MB

The downloaded source packages are in ‘/private/var/folders/sq/pf4zyy5j15v_z71jhc3pzsw80000gn/T/Rtmp1IgtPc/downloaded_packages’ > install.packages(“rpart.plot”) trying URL ‘https://cran.rstudio.com/bin/macosx/contrib/4.0/rpart.plot_3.0.9.tgz’ Content type ‘application/x-gzip’ length 1012983 bytes (989 KB) ================================================== downloaded 989 KB

The downloaded binary packages are in /var/folders/sq/pf4zyy5j15v_z71jhc3pzsw80000gn/T//Rtmp1IgtPc/downloaded_packages > install.packages(“ggplot2”) also installing the dependencies ‘ps’, ‘processx’, ‘callr’, ‘prettyunits’, ‘desc’, ‘pkgbuild’, ‘pkgload’, ‘praise’, ‘colorspace’, ‘assertthat’, ‘utf8’, ‘testthat’, ‘farver’, ‘labeling’, ‘lifecycle’, ‘munsell’, ‘R6’, ‘RColorBrewer’, ‘viridisLite’, ‘cli’, ‘crayon’, ‘ellipsis’, ‘fansi’, ‘pillar’, ‘pkgconfig’, ‘vctrs’, ‘gtable’, ‘isoband’, ‘scales’, ‘tibble’, ‘withr’

trying URL ‘https://cran.rstudio.com/bin/macosx/contrib/4.0/ps_1.4.0.tgz’ Content type ‘application/x-gzip’ length 251683 bytes (245 KB) ================================================== downloaded 245 KB

trying URL ‘https://cran.rstudio.com/bin/macosx/contrib/4.0/processx_3.4.4.tgz’ Content type ‘application/x-gzip’ length 278496 bytes (271 KB) ================================================== downloaded 271 KB

trying URL ‘https://cran.rstudio.com/bin/macosx/contrib/4.0/callr_3.5.1.tgz’ Content type ‘application/x-gzip’ length 385435 bytes (376 KB) ================================================== downloaded 376 KB

trying URL ‘https://cran.rstudio.com/bin/macosx/contrib/4.0/prettyunits_1.1.1.tgz’ Content type ‘application/x-gzip’ length 34704 bytes (33 KB) ================================================== downloaded 33 KB

trying URL ‘https://cran.rstudio.com/bin/macosx/contrib/4.0/desc_1.2.0.tgz’ Content type ‘application/x-gzip’ length 285234 bytes (278 KB) ================================================== downloaded 278 KB

trying URL ‘https://cran.rstudio.com/bin/macosx/contrib/4.0/pkgbuild_1.1.0.tgz’ Content type ‘application/x-gzip’ length 139362 bytes (136 KB) ================================================== downloaded 136 KB

trying URL ‘https://cran.rstudio.com/bin/macosx/contrib/4.0/pkgload_1.1.0.tgz’ Content type ‘application/x-gzip’ length 150877 bytes (147 KB) ================================================== downloaded 147 KB

trying URL ‘https://cran.rstudio.com/bin/macosx/contrib/4.0/praise_1.0.0.tgz’ Content type ‘application/x-gzip’ length 16137 bytes (15 KB) ================================================== downloaded 15 KB

trying URL ‘https://cran.rstudio.com/bin/macosx/contrib/4.0/colorspace_1.4-1.tgz’ Content type ‘application/x-gzip’ length 2569870 bytes (2.5 MB) ================================================== downloaded 2.5 MB

trying URL ‘https://cran.rstudio.com/bin/macosx/contrib/4.0/assertthat_0.2.1.tgz’ Content type ‘application/x-gzip’ length 52572 bytes (51 KB) ================================================== downloaded 51 KB

trying URL ‘https://cran.rstudio.com/bin/macosx/contrib/4.0/utf8_1.1.4.tgz’ Content type ‘application/x-gzip’ length 195526 bytes (190 KB) ================================================== downloaded 190 KB

trying URL ‘https://cran.rstudio.com/bin/macosx/contrib/4.0/testthat_2.3.2.tgz’ Content type ‘application/x-gzip’ length 2371825 bytes (2.3 MB) ================================================== downloaded 2.3 MB

trying URL ‘https://cran.rstudio.com/bin/macosx/contrib/4.0/farver_2.0.3.tgz’ Content type ‘application/x-gzip’ length 1829409 bytes (1.7 MB) ================================================== downloaded 1.7 MB

trying URL ‘https://cran.rstudio.com/bin/macosx/contrib/4.0/labeling_0.4.2.tgz’ Content type ‘application/x-gzip’ length 60296 bytes (58 KB) ================================================== downloaded 58 KB

trying URL ‘https://cran.rstudio.com/bin/macosx/contrib/4.0/lifecycle_0.2.0.tgz’ Content type ‘application/x-gzip’ length 91596 bytes (89 KB) ================================================== downloaded 89 KB

trying URL ‘https://cran.rstudio.com/bin/macosx/contrib/4.0/munsell_0.5.0.tgz’ Content type ‘application/x-gzip’ length 241504 bytes (235 KB) ================================================== downloaded 235 KB

trying URL ‘https://cran.rstudio.com/bin/macosx/contrib/4.0/R6_2.4.1.tgz’ Content type ‘application/x-gzip’ length 57553 bytes (56 KB) ================================================== downloaded 56 KB

trying URL ‘https://cran.rstudio.com/bin/macosx/contrib/4.0/RColorBrewer_1.1-2.tgz’ Content type ‘application/x-gzip’ length 52944 bytes (51 KB) ================================================== downloaded 51 KB

trying URL ‘https://cran.rstudio.com/bin/macosx/contrib/4.0/viridisLite_0.3.0.tgz’ Content type ‘application/x-gzip’ length 57005 bytes (55 KB) ================================================== downloaded 55 KB

trying URL ‘https://cran.rstudio.com/bin/macosx/contrib/4.0/cli_2.1.0.tgz’ Content type ‘application/x-gzip’ length 406227 bytes (396 KB) ================================================== downloaded 396 KB

trying URL ‘https://cran.rstudio.com/bin/macosx/contrib/4.0/crayon_1.3.4.tgz’ Content type ‘application/x-gzip’ length 748897 bytes (731 KB) ================================================== downloaded 731 KB

trying URL ‘https://cran.rstudio.com/bin/macosx/contrib/4.0/ellipsis_0.3.1.tgz’ Content type ‘application/x-gzip’ length 33497 bytes (32 KB) ================================================== downloaded 32 KB

trying URL ‘https://cran.rstudio.com/bin/macosx/contrib/4.0/fansi_0.4.1.tgz’ Content type ‘application/x-gzip’ length 210700 bytes (205 KB) ================================================== downloaded 205 KB

trying URL ‘https://cran.rstudio.com/bin/macosx/contrib/4.0/pillar_1.4.6.tgz’ Content type ‘application/x-gzip’ length 176431 bytes (172 KB) ================================================== downloaded 172 KB

trying URL ‘https://cran.rstudio.com/bin/macosx/contrib/4.0/pkgconfig_2.0.3.tgz’ Content type ‘application/x-gzip’ length 17738 bytes (17 KB) ================================================== downloaded 17 KB

trying URL ‘https://cran.rstudio.com/bin/macosx/contrib/4.0/vctrs_0.3.4.tgz’ Content type ‘application/x-gzip’ length 1307888 bytes (1.2 MB) ================================================== downloaded 1.2 MB

trying URL ‘https://cran.rstudio.com/bin/macosx/contrib/4.0/gtable_0.3.0.tgz’ Content type ‘application/x-gzip’ length 431500 bytes (421 KB) ================================================== downloaded 421 KB

trying URL ‘https://cran.rstudio.com/bin/macosx/contrib/4.0/isoband_0.2.2.tgz’ Content type ‘application/x-gzip’ length 4016637 bytes (3.8 MB) ================================================== downloaded 3.8 MB

trying URL ‘https://cran.rstudio.com/bin/macosx/contrib/4.0/scales_1.1.1.tgz’ Content type ‘application/x-gzip’ length 552885 bytes (539 KB) ================================================== downloaded 539 KB

trying URL ‘https://cran.rstudio.com/bin/macosx/contrib/4.0/tibble_3.0.4.tgz’ Content type ‘application/x-gzip’ length 393069 bytes (383 KB) ================================================== downloaded 383 KB

trying URL ‘https://cran.rstudio.com/bin/macosx/contrib/4.0/withr_2.3.0.tgz’ Content type ‘application/x-gzip’ length 205487 bytes (200 KB) ================================================== downloaded 200 KB

trying URL ‘https://cran.rstudio.com/bin/macosx/contrib/4.0/ggplot2_3.3.2.tgz’ Content type ‘application/x-gzip’ length 4064530 bytes (3.9 MB) ================================================== downloaded 3.9 MB

The downloaded binary packages are in /var/folders/sq/pf4zyy5j15v_z71jhc3pzsw80000gn/T//Rtmp1IgtPc/downloaded_packages > install.packages(“e1071”) trying URL ‘https://cran.rstudio.com/bin/macosx/contrib/4.0/e1071_1.7-4.tgz’ Content type ‘application/x-gzip’ length 893797 bytes (872 KB) ================================================== downloaded 872 KB

The downloaded binary packages are in /var/folders/sq/pf4zyy5j15v_z71jhc3pzsw80000gn/T//Rtmp1IgtPc/downloaded_packages > library(ggplot2) > cc <- read.csv(“a2/UCI_Credit_Card.csv”) Error in file(file, “rt”) : cannot open the connection In addition: Warning message: In file(file, “rt”) : cannot open file ‘a2/UCI_Credit_Card.csv’: No such file or directory > cc\(default.payment.next.month <- factor(cc\)default.payment.next.month,levels=c(0,1), labels=c(“No”,“Yes”)) Error in factor(cc\(default.payment.next.month, levels = c(0, 1), labels = c("No", : object 'cc' not found > library(ggplot2) > cc <- read.csv("a2/UCI_Credit_Card.csv") Error in file(file, "rt") : cannot open the connection In addition: Warning message: In file(file, "rt") : cannot open file 'a2/UCI_Credit_Card.csv': No such file or directory > cc\)default.payment.next.month <- factor(cc\(default.payment.next.month,levels=c(0,1), labels=c("No","Yes")) Error in factor(cc\)default.payment.next.month, levels = c(0, 1), labels = c(“No”, : object ‘cc’ not found > cc\(default.payment.next.month <- factor(cc\)default.payment.next.month,levels=c(0,1), labels=c(“No”,“Yes”)) Error in factor(cc\(default.payment.next.month, levels = c(0, 1), labels = c("No", : object 'cc' not found > library(ggplot2) > cc <- read.csv("a2/UCI_Credit_Card.csv") Error in file(file, "rt") : cannot open the connection In addition: Warning message: In file(file, "rt") : cannot open file 'a2/UCI_Credit_Card.csv': No such file or directory > cc <- read.csv("UCI_Credit_Card.csv") > cc\)default.payment.next.month <- factor(cc\(default.payment.next.month,levels=c(0,1), labels=c("No","Yes")) > ggplot(cc, aes(x=SEX, fill=default.payment.next.month, color=default.payment.next.month)) + + geom_histogram(binwidth=1, position="stack") + + scale_color_manual(values=c("black","black")) + + scale_fill_manual(values=c("darkolivegreen4", "red")) > ggplot(cc, aes(x=MARRIAGE, fill=default.payment.next.month, color=default.payment.next.month)) + + geom_histogram(binwidth=1, position="stack") + + scale_color_manual(values=c("black","black")) + + scale_fill_manual(values=c("darkolivegreen4", "blue")) > ggplot(cc, aes(x=PAY_0, fill=default.payment.next.month, color=default.payment.next.month)) + + geom_histogram(binwidth=1, position="stack") + + scale_color_manual(values=c("black","black")) + + scale_fill_manual(values=c("darkolivegreen4", "red")) > ggplot(cc, aes(x=EDUCATION, fill=default.payment.next.month, color=default.payment.next.month)) + + geom_histogram(binwidth=1, position="stack") + + scale_color_manual(values=c("black","black")) + + scale_fill_manual(values=c("darkolivegreen4", "red")) > ggplot(cc, aes(x=SEX, fill=default.payment.next.month, color=default.payment.next.month)) + + geom_histogram(binwidth=1, position="stack") + + scale_color_manual(values=c("black","black")) + + scale_fill_manual(values=c("darkolivegreen4", "red")) > ggplot(cc, aes(x=MARRIAGE, fill=default.payment.next.month, color=default.payment.next.month)) + + + geom_histogram(binwidth=1, position="stack") + + + scale_color_manual(values=c("black","black")) + + + scale_fill_manual(values=c("darkolivegreen4", "blue")) Error: Cannot use `+.gg()` with a single argument. Did you accidentally put + on a new line? Run `rlang::last_error()` to see where the error occurred. > ggplot(cc, aes(x=PAY_0, fill=default.payment.next.month, color=default.payment.next.month)) + + geom_histogram(binwidth=1, position="stack") + + scale_color_manual(values=c("black","black")) + + scale_fill_manual(values=c("darkolivegreen4", "red")) > ggplot(cc, aes(x=PAY_2, fill=default.payment.next.month, color=default.payment.next.month)) + + geom_histogram(binwidth=1, position="stack") + + scale_color_manual(values=c("black","black")) + + scale_fill_manual(values=c("darkolivegreen4", "red")) > ggplot(cc, aes(x=PAY_3, fill=default.payment.next.month, color=default.payment.next.month)) + + geom_histogram(binwidth=1, position="stack") + + scale_color_manual(values=c("black","black")) + + scale_fill_manual(values=c("darkolivegreen4", "red")) > ggplot(cc, aes(x=PAY_4, fill=default.payment.next.month, color=default.payment.next.month)) + + geom_histogram(binwidth=1, position="stack") + + scale_color_manual(values=c("black","black")) + + scale_fill_manual(values=c("darkolivegreen4", "red")) > ggplot(cc, aes(x=PAY_5, fill=default.payment.next.month, color=default.payment.next.month)) + + geom_histogram(binwidth=1, position="stack") + + scale_color_manual(values=c("black","black")) + + scale_fill_manual(values=c("darkolivegreen4", "red")) > ggplot(cc, aes(x=PAY_6, fill=default.payment.next.month, color=default.payment.next.month)) + + geom_histogram(binwidth=1, position="stack") + + scale_color_manual(values=c("black","black")) + + scale_fill_manual(values=c("darkolivegreen4", "red")) > > ggplot(cc, aes(x=PAY_2, fill=default.payment.next.month, color=default.payment.next.month)) + Error: unexpected '>' in ">" > + geom_histogram(binwidth=1, position="stack") + + + scale_color_manual(values=c("black","black")) + + + scale_fill_manual(values=c("darkolivegreen4", "red")) Error: Cannot use `+.gg()` with a single argument. Did you accidentally put + on a new line? Run `rlang::last_error()` to see where the error occurred. > > ggplot(cc, aes(x=PAY_2, fill=default.payment.next.month, color=default.payment.next.month)) + Error: unexpected '>' in ">" > + geom_histogram(binwidth=1, position="stack") + + + scale_color_manual(values=c("black","black")) + + + scale_fill_manual(values=c("darkolivegreen4", "red")) Error: Cannot use `+.gg()` with a single argument. Did you accidentally put + on a new line? Run `rlang::last_error()` to see where the error occurred. > > ggplot(cc, aes(x=PAY_2, fill=default.payment.next.month, color=default.payment.next.month)) + Error: unexpected '>' in ">" > geom_histogram(binwidth=1, position="stack") + + scale_color_manual(values=c("black","black")) + + scale_fill_manual(values=c("darkolivegreen4", "red")) Error: Cannot add ggproto objects together. Did you forget to add this object to a ggplot object? Run `rlang::last_error()` to see where the error occurred. > cc\)SEX <- factor(cc$SEX,levels=c(1,2), labels=c(“Male”, “Female”)) > View(Sex) Error in View : object ‘Sex’ not found > view(Sex) Error in view(Sex) : could not find function “view” > View(Male,Sex) Error in View : object ‘Male’ not found > View(male,sex) Error in View : object ‘male’ not found > train <- cc[sample(nrow(cc), 5000), ] > nrow(train) [1] 5000 > View(train) > test <- cc[c(20,“2000”),]
> test ID LIMIT_BAL SEX EDUCATION MARRIAGE AGE PAY_0 PAY_2 PAY_3 PAY_4 PAY_5 PAY_6 BILL_AMT1 20 20 180000 Female 1 2 29 1 -2 -2 -2 -2 -2 0 2000 2000 220000 Male 2 1 32 0 -1 -1 -1 -1 -1 8000 BILL_AMT2 BILL_AMT3 BILL_AMT4 BILL_AMT5 BILL_AMT6 PAY_AMT1 PAY_AMT2 PAY_AMT3 PAY_AMT4 PAY_AMT5 20 0 0 0 0 0 0 0 0 0 0 2000 8288 8000 0 8000 0 8288 8000 0 8000 0 PAY_AMT6 default.payment.next.month 20 0 No 2000 0 No > library(e1071) > nbDem <- naiveBayes(default.payment.next.month ~ SEX + EDUCATION + MARRIAGE, train) > nbDem

Naive Bayes Classifier for Discrete Predictors

Call: naiveBayes.default(x = X, y = Y, laplace = laplace)

A-priori probabilities: Y No Yes 0.7748 0.2252

Conditional probabilities: SEX Y Male Female No 0.4011358 0.5988642 Yes 0.4271758 0.5728242

 EDUCATION

Y [,1] [,2] No 1.842282 0.8178606 Yes 1.875666 0.7208595

 MARRIAGE

Y [,1] [,2] No 1.557305 0.5156418 Yes 1.510657 0.5277812

predict(nbDem, test[20,]) [1] No Levels: No Yes predict(nbDem, test[2000,]) [1] No Levels: No Yes nbPay <- naiveBayes(default.payment.next.month ~ PAY_0 + PAY_2 + PAY_3, train) nbPay

Naive Bayes Classifier for Discrete Predictors

Call: naiveBayes.default(x = X, y = Y, laplace = laplace)

A-priori probabilities: Y No Yes 0.7748 0.2252

Conditional probabilities: PAY_0 Y [,1] [,2] No -0.1928240 0.927387 Yes 0.6651865 1.380105

 PAY_2

Y [,1] [,2] No -0.3002065 0.9964901 Yes 0.4911190 1.5194769

 PAY_3

Y [,1] [,2] No -0.3007228 1.046142 Yes 0.3730018 1.483940

Examine the probabilities in the model: iick and compare some of the probability values. Do they make sense? Explain. Error: unexpected symbol in “Examine the”

predict(nbPay, test[2,]) [1] No Levels: No Yes predict(nbPay, test[“2000”,]) [1] No Levels: No Yes nbPay <- naiveBayes(default.payment.next.month ~ PAY_0 + PAY_2 + PAY_3, train, laplace=1.5) predict(nbPay, test[1,]) [1] No Levels: No Yes nbPay <- naiveBayes(default.payment.next.month ~ PAY_0 + PAY_2 + PAY_3, train, laplace=1.5) predict(nbPay, test[5,]) [1] No Levels: No Yes nbPay <- naiveBayes(default.payment.next.month ~ PAY_0 + PAY_2 + PAY_3, train, laplace=1) predict(nbPay, test[5,]) [1] No Levels: No Yes library(“rpart”) library(“rpart.plot”) dtPay <- rpart(default.payment.next.month ~ PAY_2 + PAY_3 + PAY_6, + method=“class”, + data=train, parms=list(split=‘information’), + minsplit=20, cp=0.02) rpart.plot(dtPay, type=4, extra=1) dtPay <- rpart(default.payment.next.month ~ PAY_0 + PAY_2 + PAY_3, + method=“class”, + data=train, parms=list(split=‘information’), + minsplit=20, cp=0.001) savehistory(“~/Desktop/INFO 659/A2 History.Rhistory”)

LS0tCnRpdGxlOiAiUiBOb3RlYm9vayIKb3V0cHV0OiBodG1sX25vdGVib29rCi0tLQoKVGhpcyBpcyBhbiBbUiBNYXJrZG93bl0oaHR0cDovL3JtYXJrZG93bi5yc3R1ZGlvLmNvbSkgTm90ZWJvb2suIFdoZW4geW91IGV4ZWN1dGUgY29kZSB3aXRoaW4gdGhlIG5vdGVib29rLCB0aGUgcmVzdWx0cyBhcHBlYXIgYmVuZWF0aCB0aGUgY29kZS4gCgpUcnkgZXhlY3V0aW5nIHRoaXMgY2h1bmsgYnkgY2xpY2tpbmcgdGhlICpSdW4qIGJ1dHRvbiB3aXRoaW4gdGhlIGNodW5rIG9yIGJ5IHBsYWNpbmcgeW91ciBjdXJzb3IgaW5zaWRlIGl0IGFuZCBwcmVzc2luZyAqQ21kK1NoaWZ0K0VudGVyKi4gCgpgYGB7cn0KcGxvdChjYXJzKQpgYGAKCkFkZCBhIG5ldyBjaHVuayBieSBjbGlja2luZyB0aGUgKkluc2VydCBDaHVuayogYnV0dG9uIG9uIHRoZSB0b29sYmFyIG9yIGJ5IHByZXNzaW5nICpDbWQrT3B0aW9uK0kqLgoKV2hlbiB5b3Ugc2F2ZSB0aGUgbm90ZWJvb2ssIGFuIEhUTUwgZmlsZSBjb250YWluaW5nIHRoZSBjb2RlIGFuZCBvdXRwdXQgd2lsbCBiZSBzYXZlZCBhbG9uZ3NpZGUgaXQgKGNsaWNrIHRoZSAqUHJldmlldyogYnV0dG9uIG9yIHByZXNzICpDbWQrU2hpZnQrSyogdG8gcHJldmlldyB0aGUgSFRNTCBmaWxlKS4gCgpUaGUgcHJldmlldyBzaG93cyB5b3UgYSByZW5kZXJlZCBIVE1MIGNvcHkgb2YgdGhlIGNvbnRlbnRzIG9mIHRoZSBlZGl0b3IuIENvbnNlcXVlbnRseSwgdW5saWtlICpLbml0KiwgKlByZXZpZXcqIGRvZXMgbm90IHJ1biBhbnkgUiBjb2RlIGNodW5rcy4gSW5zdGVhZCwgdGhlIG91dHB1dCBvZiB0aGUgY2h1bmsgd2hlbiBpdCB3YXMgbGFzdCBydW4gaW4gdGhlIGVkaXRvciBpcyBkaXNwbGF5ZWQuCgpsaWJyYXJ5KGdncGxvdDIpCmNjIDwtIHJlYWQuY3N2KCJhMi9VQ0lfQ3JlZGl0X0NhcmQuY3N2IikKY2MkZGVmYXVsdC5wYXltZW50Lm5leHQubW9udGggPC0gZmFjdG9yKGNjJGRlZmF1bHQucGF5bWVudC5uZXh0Lm1vbnRoLGxldmVscz1jKDAsMSksIGxhYmVscz1jKCJObyIsIlllcyIpKQoKClIgdmVyc2lvbiA0LjAuMyAoMjAyMC0xMC0xMCkgLS0gIkJ1bm55LVd1bm5pZXMgRnJlYWsgT3V0IgpDb3B5cmlnaHQgKEMpIDIwMjAgVGhlIFIgRm91bmRhdGlvbiBmb3IgU3RhdGlzdGljYWwgQ29tcHV0aW5nClBsYXRmb3JtOiB4ODZfNjQtYXBwbGUtZGFyd2luMTcuMCAoNjQtYml0KQoKUiBpcyBmcmVlIHNvZnR3YXJlIGFuZCBjb21lcyB3aXRoIEFCU09MVVRFTFkgTk8gV0FSUkFOVFkuCllvdSBhcmUgd2VsY29tZSB0byByZWRpc3RyaWJ1dGUgaXQgdW5kZXIgY2VydGFpbiBjb25kaXRpb25zLgpUeXBlICdsaWNlbnNlKCknIG9yICdsaWNlbmNlKCknIGZvciBkaXN0cmlidXRpb24gZGV0YWlscy4KCiAgTmF0dXJhbCBsYW5ndWFnZSBzdXBwb3J0IGJ1dCBydW5uaW5nIGluIGFuIEVuZ2xpc2ggbG9jYWxlCgpSIGlzIGEgY29sbGFib3JhdGl2ZSBwcm9qZWN0IHdpdGggbWFueSBjb250cmlidXRvcnMuClR5cGUgJ2NvbnRyaWJ1dG9ycygpJyBmb3IgbW9yZSBpbmZvcm1hdGlvbiBhbmQKJ2NpdGF0aW9uKCknIG9uIGhvdyB0byBjaXRlIFIgb3IgUiBwYWNrYWdlcyBpbiBwdWJsaWNhdGlvbnMuCgpUeXBlICdkZW1vKCknIGZvciBzb21lIGRlbW9zLCAnaGVscCgpJyBmb3Igb24tbGluZSBoZWxwLCBvcgonaGVscC5zdGFydCgpJyBmb3IgYW4gSFRNTCBicm93c2VyIGludGVyZmFjZSB0byBoZWxwLgpUeXBlICdxKCknIHRvIHF1aXQgUi4KCltXb3Jrc3BhY2UgbG9hZGVkIGZyb20gfi9EZXNrdG9wL0lORk8gNjU5Ly5SRGF0YV0KCj4gZGF0YU5hbWUgPC0gcmVhZC50YWJsZSjigJxpcmlzLmNzduKAnSwgaGVhZGVyPVRSVUUsIHNlcD3igJ0s4oCdKQpFcnJvcjogdW5leHBlY3RlZCBpbnB1dCBpbiAiZGF0YU5hbWUgPC0gcmVhZC50YWJsZSjigJwiCj4gZGF0YU5hbWUgPC0gcmVhZC50YWJsZSjigJxpcmlzLmNzduKAnSwgaGVhZGVyPVRSVUUsIHNlcD3igJ0s4oCdKQpFcnJvcjogdW5leHBlY3RlZCBpbnB1dCBpbiAiZGF0YU5hbWUgPC0gcmVhZC50YWJsZSjigJwiCj4gZGF0YU5hbWUgPC0gcmVhZC50YWJsZShpcmlzLmNzdiwgaGVhZGVyPVRSVUUsIHNlcD3igJ0s4oCdKQpFcnJvcjogdW5leHBlY3RlZCBpbnB1dCBpbiAiZGF0YU5hbWUgPC0gcmVhZC50YWJsZShpcmlzLmNzdiwgaGVhZGVyPVRSVUUsIHNlcD3igJ0iCj4gaXJpcyA8LSByZWFkLmNzdigifi9EZXNrdG9wL0lORk8gNjU5L2lyaXMuY3N2IikKPiAgIFZpZXcoaXJpcykKPiBoZWFkKHNwZWNpZXMsIDUpCkVycm9yIGluIGhlYWQoc3BlY2llcywgNSkgOiBvYmplY3QgJ3NwZWNpZXMnIG5vdCBmb3VuZAo+IGhlYWQoc2VwYWxfbGVuZ3RoLCA1KQpFcnJvciBpbiBoZWFkKHNlcGFsX2xlbmd0aCwgNSkgOiBvYmplY3QgJ3NlcGFsX2xlbmd0aCcgbm90IGZvdW5kCj4gaGVhZChpcmlzLDUpCiAgc2VwYWxfbGVuZ3RoIHNlcGFsX3dpZHRoIHBldGFsX2xlbmd0aCBwZXRhbF93aWR0aCBzcGVjaWVzCjEgICAgICAgICAgNS4xICAgICAgICAgMy41ICAgICAgICAgIDEuNCAgICAgICAgIDAuMiAgc2V0b3NhCjIgICAgICAgICAgNC45ICAgICAgICAgMy4wICAgICAgICAgIDEuNCAgICAgICAgIDAuMiAgc2V0b3NhCjMgICAgICAgICAgNC43ICAgICAgICAgMy4yICAgICAgICAgIDEuMyAgICAgICAgIDAuMiAgc2V0b3NhCjQgICAgICAgICAgNC42ICAgICAgICAgMy4xICAgICAgICAgIDEuNSAgICAgICAgIDAuMiAgc2V0b3NhCjUgICAgICAgICAgNS4wICAgICAgICAgMy42ICAgICAgICAgIDEuNCAgICAgICAgIDAuMiAgc2V0b3NhCj4gaW5kZXggPC0gcmVhZC5jc3YoIn4vRGVza3RvcC9JTkZPIDY1OS9pbmRleC5jc3YiKQo+ICAgVmlldyhpbmRleCkKPiBoZWFkKGluZGV4LDUpCiAgWWVhciBNb250aCBEYXkgRmVkZXJhbC5GdW5kcy5UYXJnZXQuUmF0ZSBGZWRlcmFsLkZ1bmRzLlVwcGVyLlRhcmdldAoxIDE5NTQgICAgIDcgICAxICAgICAgICAgICAgICAgICAgICAgICAgTkEgICAgICAgICAgICAgICAgICAgICAgICAgTkEKMiAxOTU0ICAgICA4ICAgMSAgICAgICAgICAgICAgICAgICAgICAgIE5BICAgICAgICAgICAgICAgICAgICAgICAgIE5BCjMgMTk1NCAgICAgOSAgIDEgICAgICAgICAgICAgICAgICAgICAgICBOQSAgICAgICAgICAgICAgICAgICAgICAgICBOQQo0IDE5NTQgICAgMTAgICAxICAgICAgICAgICAgICAgICAgICAgICAgTkEgICAgICAgICAgICAgICAgICAgICAgICAgTkEKNSAxOTU0ICAgIDExICAgMSAgICAgICAgICAgICAgICAgICAgICAgIE5BICAgICAgICAgICAgICAgICAgICAgICAgIE5BCiAgRmVkZXJhbC5GdW5kcy5Mb3dlci5UYXJnZXQgRWZmZWN0aXZlLkZlZGVyYWwuRnVuZHMuUmF0ZQoxICAgICAgICAgICAgICAgICAgICAgICAgIE5BICAgICAgICAgICAgICAgICAgICAgICAgIDAuODAKMiAgICAgICAgICAgICAgICAgICAgICAgICBOQSAgICAgICAgICAgICAgICAgICAgICAgICAxLjIyCjMgICAgICAgICAgICAgICAgICAgICAgICAgTkEgICAgICAgICAgICAgICAgICAgICAgICAgMS4wNgo0ICAgICAgICAgICAgICAgICAgICAgICAgIE5BICAgICAgICAgICAgICAgICAgICAgICAgIDAuODUKNSAgICAgICAgICAgICAgICAgICAgICAgICBOQSAgICAgICAgICAgICAgICAgICAgICAgICAwLjgzCiAgUmVhbC5HRFAuLlBlcmNlbnQuQ2hhbmdlLiBVbmVtcGxveW1lbnQuUmF0ZSBJbmZsYXRpb24uUmF0ZQoxICAgICAgICAgICAgICAgICAgICAgICA0LjYgICAgICAgICAgICAgICA1LjggICAgICAgICAgICAgTkEKMiAgICAgICAgICAgICAgICAgICAgICAgIE5BICAgICAgICAgICAgICAgNi4wICAgICAgICAgICAgIE5BCjMgICAgICAgICAgICAgICAgICAgICAgICBOQSAgICAgICAgICAgICAgIDYuMSAgICAgICAgICAgICBOQQo0ICAgICAgICAgICAgICAgICAgICAgICA4LjAgICAgICAgICAgICAgICA1LjcgICAgICAgICAgICAgTkEKNSAgICAgICAgICAgICAgICAgICAgICAgIE5BICAgICAgICAgICAgICAgNS4zICAgICAgICAgICAgIE5BCj4gaGlzdChpbmRleCRJbmZsYXRpb24uUmF0ZSwgYnJlYWtzPTEwLCB4bGFiPeKAnVggTGFiZWzigJ0sIG1haW494oCdRmlndXJlIExhYmVs4oCdKQpFcnJvcjogdW5leHBlY3RlZCBpbnB1dCBpbiAiaGlzdChpbmRleCRJbmZsYXRpb24uUmF0ZSwgYnJlYWtzPTEwLCB4bGFiPeKAnSIKPiBoaXN0KGluZGV4JEluZmxhdGlvbi5SYXRlLCBicmVha3M9MTAsIHhsYWI9IlggTGFiZWwiIiwgbWFpbj0iRmlndXJlIExhYmVsIikKRXJyb3I6IHVuZXhwZWN0ZWQgc3RyaW5nIGNvbnN0YW50IGluICJoaXN0KGluZGV4JEluZmxhdGlvbi5SYXRlLCBicmVha3M9MTAsIHhsYWI9IlggTGFiZWwiIiwgbWFpbj0iIgo+IGhpc3QoaW5kZXgkSW5mbGF0aW9uLlJhdGUsIGJyZWFrcz0xMCwgeGxhYj0iWCBMYWJlbCIiLCBtYWluPSJGaWd1cmUgTGFiZWwiIikKRXJyb3I6IHVuZXhwZWN0ZWQgc3RyaW5nIGNvbnN0YW50IGluICJoaXN0KGluZGV4JEluZmxhdGlvbi5SYXRlLCBicmVha3M9MTAsIHhsYWI9IlggTGFiZWwiIiwgbWFpbj0iIgo+IGhpc3QoaW5kZXgkSW5mbGF0aW9uLlJhdGUsIGJyZWFrcz0xMCwgeGxhYj0nWCBMYWJlbCcnLCBtYWluPSdGaWd1cmUgTGFiZWwnJykKRXJyb3I6IHVuZXhwZWN0ZWQgc3RyaW5nIGNvbnN0YW50IGluICJoaXN0KGluZGV4JEluZmxhdGlvbi5SYXRlLCBicmVha3M9MTAsIHhsYWI9J1ggTGFiZWwnJywgbWFpbj0nIgo+IGhpc3QoaW5kZXgkWWVhciwgYnJlYWtzPTEwLCB4bGFiPSJYIExhYmVsIiIsIG1haW49IkZpZ3VyZSBMYWJlbCIpCkVycm9yOiB1bmV4cGVjdGVkIHN0cmluZyBjb25zdGFudCBpbiAiaGlzdChpbmRleCRZZWFyLCBicmVha3M9MTAsIHhsYWI9IlggTGFiZWwiIiwgbWFpbj0iIgo+IGhpc3QoaW5kZXgkSW5mbGF0aW9uLlJhdGUpCj4gaGlzdChpbmRleCRJbmZsYXRpb24uUmF0ZSwgYnJlYWtzPTEwKQo+IGhpc3QoaW5kZXgkSW5mbGF0aW9uLlJhdGUsIGJyZWFrcz0xMCwgeGxhYj0iWCBMYWJlbCIiKQorIGhpc3QoaW5kZXgkSW5mbGF0aW9uLlJhdGUsIGJyZWFrcz0xMCwgeGxhYj0iWCBMYWJlbCIiLCBtYWluPSJGaWd1cmUgTGFiZWwiKQpFcnJvcjogdW5leHBlY3RlZCBzdHJpbmcgY29uc3RhbnQgaW46CiJoaXN0KGluZGV4JEluZmxhdGlvbi5SYXRlLCBicmVha3M9MTAsIHhsYWI9IlggTGFiZWwiIikKaGlzdChpbmRleCRJbmZsYXRpb24uUmF0ZSwgYnJlYWtzPTEwLCB4bGFiPSIiCj4gaGlzdChpbmRleCRJbmZsYXRpb24uUmF0ZSwgYnJlYWtzPTEwLCB4bGFiPSJYIExhYmVsIiIsIG1haW49J0ZpZ3VyZSBMYWJlbCcpCisgCisgZW5kCisgY29tcGxldGUKKyAiIgpFcnJvcjogdW5leHBlY3RlZCBzdHJpbmcgY29uc3RhbnQgaW46CiJjb21wbGV0ZQoiIgo+IGhpc3QobG9nMTAoaW5kZXgkSW5mbGF0aW9uLlJhdGUpLCBicmVha3M9MTAsIHhsYWI94oCdLi7igJ0sIG1haW494oCdLi7igJ0pCkVycm9yOiB1bmV4cGVjdGVkIGlucHV0IGluICJoaXN0KGxvZzEwKGluZGV4JEluZmxhdGlvbi5SYXRlKSwgYnJlYWtzPTEwLCB4bGFiPeKAnSIKPiBoaXN0KGxvZzEwKGRhdGFOYW1lJGF0dHJpYnV0ZU5hbWUpLCBicmVha3M9MTAsIHhsYWI9IlggTGFiZWwiIiwgbWFpbj0iRmlndXJlIExhYmVsIikKRXJyb3I6IHVuZXhwZWN0ZWQgc3RyaW5nIGNvbnN0YW50IGluICJoaXN0KGxvZzEwKGRhdGFOYW1lJGF0dHJpYnV0ZU5hbWUpLCBicmVha3M9MTAsIHhsYWI9IlggTGFiZWwiIiwgbWFpbj0iIgo+IGhpc3QobG9nMTAoaW5kZXgkSW5mbGF0aW9uLlJhdGUpLCBicmVha3M9MTAsIHhsYWI9IlggTGFiZWwiLCBtYWluPSJGaWd1cmUgTGFiZWwiKQo+IHBsb3QoaW5kZXgkWWVhciwgaW5kZXgkSW5mbGF0aW9uLlJhdGUsIHhsYWI9IlRpbWUiLCB5bGFiPSJJbmZsYXRpb24iKQo+IG15bGluZSA8LSBsbShpbmRleCRJbmZsYXRpb24uUmF0ZSB+IGluZGV4JFllYXIpCj4gcG9pbnRzKGluZGV4JFllYXIsIG15bGluZSRjb2VmZmljaWVudHNbMV0gKyBteWxpbmUkY29lZmZpY2llbnRzWzJdICogaW5kZXgkWWVhciwgdHlwZT3igJ1s4oCdLCBjb2w94oCdcmVk4oCdKQpFcnJvcjogdW5leHBlY3RlZCBpbnB1dCBpbiAicG9pbnRzKGluZGV4JFllYXIsIG15bGluZSRjb2VmZmljaWVudHNbMV0gKyBteWxpbmUkY29lZmZpY2llbnRzWzJdICogaW5kZXgkWWVhciwgdHlwZT3igJ0iCj4gcG9pbnRzKGluZGV4JFllYXIsIG15bGluZSRjb2VmZmljaWVudHNbMV0gKyBteWxpbmUkY29lZmZpY2llbnRzWzJdICogaW5kZXgkWWVhciwgdHlwZT0ibCIsIGNvbD0icmVkIikKPiBpbnN0YWxsLnBhY2thZ2VzKCJybWFya2Rvd24iKQpFcnJvciBpbiBpbnN0YWxsLnBhY2thZ2VzIDogVXBkYXRpbmcgbG9hZGVkIHBhY2thZ2VzCgpSZXN0YXJ0aW5nIFIgc2Vzc2lvbi4uLgoKPiBpbnN0YWxsLnBhY2thZ2VzKCJybWFya2Rvd24iKQoKICBUaGVyZSBpcyBhIGJpbmFyeSB2ZXJzaW9uIGF2YWlsYWJsZSBidXQgdGhlIHNvdXJjZSB2ZXJzaW9uIGlzIGxhdGVyOgogICAgICAgICAgYmluYXJ5IHNvdXJjZSBuZWVkc19jb21waWxhdGlvbgpybWFya2Rvd24gICAgMi4zICAgIDIuNSAgICAgICAgICAgICBGQUxTRQoKaW5zdGFsbGluZyB0aGUgc291cmNlIHBhY2thZ2Ug4oCYcm1hcmtkb3du4oCZCgp0cnlpbmcgVVJMICdodHRwczovL2NyYW4ucnN0dWRpby5jb20vc3JjL2NvbnRyaWIvcm1hcmtkb3duXzIuNS50YXIuZ3onCkNvbnRlbnQgdHlwZSAnYXBwbGljYXRpb24veC1nemlwJyBsZW5ndGggMzIwMzQxNSBieXRlcyAoMy4xIE1CKQo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQpkb3dubG9hZGVkIDMuMSBNQgoKKiBpbnN0YWxsaW5nICpzb3VyY2UqIHBhY2thZ2Ug4oCYcm1hcmtkb3du4oCZIC4uLgoqKiBwYWNrYWdlIOKAmHJtYXJrZG93buKAmSBzdWNjZXNzZnVsbHkgdW5wYWNrZWQgYW5kIE1ENSBzdW1zIGNoZWNrZWQKKiogdXNpbmcgc3RhZ2VkIGluc3RhbGxhdGlvbgoqKiBSCioqIGluc3QKKiogYnl0ZS1jb21waWxlIGFuZCBwcmVwYXJlIHBhY2thZ2UgZm9yIGxhenkgbG9hZGluZwoqKiBoZWxwCioqKiBpbnN0YWxsaW5nIGhlbHAgaW5kaWNlcwoqKiBidWlsZGluZyBwYWNrYWdlIGluZGljZXMKKiogaW5zdGFsbGluZyB2aWduZXR0ZXMKKiogdGVzdGluZyBpZiBpbnN0YWxsZWQgcGFja2FnZSBjYW4gYmUgbG9hZGVkIGZyb20gdGVtcG9yYXJ5IGxvY2F0aW9uCioqIHRlc3RpbmcgaWYgaW5zdGFsbGVkIHBhY2thZ2UgY2FuIGJlIGxvYWRlZCBmcm9tIGZpbmFsIGxvY2F0aW9uCioqIHRlc3RpbmcgaWYgaW5zdGFsbGVkIHBhY2thZ2Uga2VlcHMgYSByZWNvcmQgb2YgdGVtcG9yYXJ5IGluc3RhbGxhdGlvbiBwYXRoCiogRE9ORSAocm1hcmtkb3duKQoKVGhlIGRvd25sb2FkZWQgc291cmNlIHBhY2thZ2VzIGFyZSBpbgoJ4oCYL3ByaXZhdGUvdmFyL2ZvbGRlcnMvc3EvcGY0enl5NWoxNXZfejcxamhjM3B6c3c4MDAwMGduL1QvUnRtcDFJZ3RQYy9kb3dubG9hZGVkX3BhY2thZ2Vz4oCZCj4gaW5zdGFsbC5wYWNrYWdlcygicnBhcnQucGxvdCIpCnRyeWluZyBVUkwgJ2h0dHBzOi8vY3Jhbi5yc3R1ZGlvLmNvbS9iaW4vbWFjb3N4L2NvbnRyaWIvNC4wL3JwYXJ0LnBsb3RfMy4wLjkudGd6JwpDb250ZW50IHR5cGUgJ2FwcGxpY2F0aW9uL3gtZ3ppcCcgbGVuZ3RoIDEwMTI5ODMgYnl0ZXMgKDk4OSBLQikKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KZG93bmxvYWRlZCA5ODkgS0IKCgpUaGUgZG93bmxvYWRlZCBiaW5hcnkgcGFja2FnZXMgYXJlIGluCgkvdmFyL2ZvbGRlcnMvc3EvcGY0enl5NWoxNXZfejcxamhjM3B6c3c4MDAwMGduL1QvL1J0bXAxSWd0UGMvZG93bmxvYWRlZF9wYWNrYWdlcwo+IGluc3RhbGwucGFja2FnZXMoImdncGxvdDIiKQphbHNvIGluc3RhbGxpbmcgdGhlIGRlcGVuZGVuY2llcyDigJhwc+KAmSwg4oCYcHJvY2Vzc3jigJksIOKAmGNhbGxy4oCZLCDigJhwcmV0dHl1bml0c+KAmSwg4oCYZGVzY+KAmSwg4oCYcGtnYnVpbGTigJksIOKAmHBrZ2xvYWTigJksIOKAmHByYWlzZeKAmSwg4oCYY29sb3JzcGFjZeKAmSwg4oCYYXNzZXJ0dGhhdOKAmSwg4oCYdXRmOOKAmSwg4oCYdGVzdHRoYXTigJksIOKAmGZhcnZlcuKAmSwg4oCYbGFiZWxpbmfigJksIOKAmGxpZmVjeWNsZeKAmSwg4oCYbXVuc2VsbOKAmSwg4oCYUjbigJksIOKAmFJDb2xvckJyZXdlcuKAmSwg4oCYdmlyaWRpc0xpdGXigJksIOKAmGNsaeKAmSwg4oCYY3JheW9u4oCZLCDigJhlbGxpcHNpc+KAmSwg4oCYZmFuc2nigJksIOKAmHBpbGxhcuKAmSwg4oCYcGtnY29uZmln4oCZLCDigJh2Y3Ryc+KAmSwg4oCYZ3RhYmxl4oCZLCDigJhpc29iYW5k4oCZLCDigJhzY2FsZXPigJksIOKAmHRpYmJsZeKAmSwg4oCYd2l0aHLigJkKCnRyeWluZyBVUkwgJ2h0dHBzOi8vY3Jhbi5yc3R1ZGlvLmNvbS9iaW4vbWFjb3N4L2NvbnRyaWIvNC4wL3BzXzEuNC4wLnRneicKQ29udGVudCB0eXBlICdhcHBsaWNhdGlvbi94LWd6aXAnIGxlbmd0aCAyNTE2ODMgYnl0ZXMgKDI0NSBLQikKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KZG93bmxvYWRlZCAyNDUgS0IKCnRyeWluZyBVUkwgJ2h0dHBzOi8vY3Jhbi5yc3R1ZGlvLmNvbS9iaW4vbWFjb3N4L2NvbnRyaWIvNC4wL3Byb2Nlc3N4XzMuNC40LnRneicKQ29udGVudCB0eXBlICdhcHBsaWNhdGlvbi94LWd6aXAnIGxlbmd0aCAyNzg0OTYgYnl0ZXMgKDI3MSBLQikKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KZG93bmxvYWRlZCAyNzEgS0IKCnRyeWluZyBVUkwgJ2h0dHBzOi8vY3Jhbi5yc3R1ZGlvLmNvbS9iaW4vbWFjb3N4L2NvbnRyaWIvNC4wL2NhbGxyXzMuNS4xLnRneicKQ29udGVudCB0eXBlICdhcHBsaWNhdGlvbi94LWd6aXAnIGxlbmd0aCAzODU0MzUgYnl0ZXMgKDM3NiBLQikKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KZG93bmxvYWRlZCAzNzYgS0IKCnRyeWluZyBVUkwgJ2h0dHBzOi8vY3Jhbi5yc3R1ZGlvLmNvbS9iaW4vbWFjb3N4L2NvbnRyaWIvNC4wL3ByZXR0eXVuaXRzXzEuMS4xLnRneicKQ29udGVudCB0eXBlICdhcHBsaWNhdGlvbi94LWd6aXAnIGxlbmd0aCAzNDcwNCBieXRlcyAoMzMgS0IpCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CmRvd25sb2FkZWQgMzMgS0IKCnRyeWluZyBVUkwgJ2h0dHBzOi8vY3Jhbi5yc3R1ZGlvLmNvbS9iaW4vbWFjb3N4L2NvbnRyaWIvNC4wL2Rlc2NfMS4yLjAudGd6JwpDb250ZW50IHR5cGUgJ2FwcGxpY2F0aW9uL3gtZ3ppcCcgbGVuZ3RoIDI4NTIzNCBieXRlcyAoMjc4IEtCKQo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQpkb3dubG9hZGVkIDI3OCBLQgoKdHJ5aW5nIFVSTCAnaHR0cHM6Ly9jcmFuLnJzdHVkaW8uY29tL2Jpbi9tYWNvc3gvY29udHJpYi80LjAvcGtnYnVpbGRfMS4xLjAudGd6JwpDb250ZW50IHR5cGUgJ2FwcGxpY2F0aW9uL3gtZ3ppcCcgbGVuZ3RoIDEzOTM2MiBieXRlcyAoMTM2IEtCKQo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQpkb3dubG9hZGVkIDEzNiBLQgoKdHJ5aW5nIFVSTCAnaHR0cHM6Ly9jcmFuLnJzdHVkaW8uY29tL2Jpbi9tYWNvc3gvY29udHJpYi80LjAvcGtnbG9hZF8xLjEuMC50Z3onCkNvbnRlbnQgdHlwZSAnYXBwbGljYXRpb24veC1nemlwJyBsZW5ndGggMTUwODc3IGJ5dGVzICgxNDcgS0IpCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CmRvd25sb2FkZWQgMTQ3IEtCCgp0cnlpbmcgVVJMICdodHRwczovL2NyYW4ucnN0dWRpby5jb20vYmluL21hY29zeC9jb250cmliLzQuMC9wcmFpc2VfMS4wLjAudGd6JwpDb250ZW50IHR5cGUgJ2FwcGxpY2F0aW9uL3gtZ3ppcCcgbGVuZ3RoIDE2MTM3IGJ5dGVzICgxNSBLQikKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KZG93bmxvYWRlZCAxNSBLQgoKdHJ5aW5nIFVSTCAnaHR0cHM6Ly9jcmFuLnJzdHVkaW8uY29tL2Jpbi9tYWNvc3gvY29udHJpYi80LjAvY29sb3JzcGFjZV8xLjQtMS50Z3onCkNvbnRlbnQgdHlwZSAnYXBwbGljYXRpb24veC1nemlwJyBsZW5ndGggMjU2OTg3MCBieXRlcyAoMi41IE1CKQo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQpkb3dubG9hZGVkIDIuNSBNQgoKdHJ5aW5nIFVSTCAnaHR0cHM6Ly9jcmFuLnJzdHVkaW8uY29tL2Jpbi9tYWNvc3gvY29udHJpYi80LjAvYXNzZXJ0dGhhdF8wLjIuMS50Z3onCkNvbnRlbnQgdHlwZSAnYXBwbGljYXRpb24veC1nemlwJyBsZW5ndGggNTI1NzIgYnl0ZXMgKDUxIEtCKQo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQpkb3dubG9hZGVkIDUxIEtCCgp0cnlpbmcgVVJMICdodHRwczovL2NyYW4ucnN0dWRpby5jb20vYmluL21hY29zeC9jb250cmliLzQuMC91dGY4XzEuMS40LnRneicKQ29udGVudCB0eXBlICdhcHBsaWNhdGlvbi94LWd6aXAnIGxlbmd0aCAxOTU1MjYgYnl0ZXMgKDE5MCBLQikKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KZG93bmxvYWRlZCAxOTAgS0IKCnRyeWluZyBVUkwgJ2h0dHBzOi8vY3Jhbi5yc3R1ZGlvLmNvbS9iaW4vbWFjb3N4L2NvbnRyaWIvNC4wL3Rlc3R0aGF0XzIuMy4yLnRneicKQ29udGVudCB0eXBlICdhcHBsaWNhdGlvbi94LWd6aXAnIGxlbmd0aCAyMzcxODI1IGJ5dGVzICgyLjMgTUIpCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CmRvd25sb2FkZWQgMi4zIE1CCgp0cnlpbmcgVVJMICdodHRwczovL2NyYW4ucnN0dWRpby5jb20vYmluL21hY29zeC9jb250cmliLzQuMC9mYXJ2ZXJfMi4wLjMudGd6JwpDb250ZW50IHR5cGUgJ2FwcGxpY2F0aW9uL3gtZ3ppcCcgbGVuZ3RoIDE4Mjk0MDkgYnl0ZXMgKDEuNyBNQikKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KZG93bmxvYWRlZCAxLjcgTUIKCnRyeWluZyBVUkwgJ2h0dHBzOi8vY3Jhbi5yc3R1ZGlvLmNvbS9iaW4vbWFjb3N4L2NvbnRyaWIvNC4wL2xhYmVsaW5nXzAuNC4yLnRneicKQ29udGVudCB0eXBlICdhcHBsaWNhdGlvbi94LWd6aXAnIGxlbmd0aCA2MDI5NiBieXRlcyAoNTggS0IpCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CmRvd25sb2FkZWQgNTggS0IKCnRyeWluZyBVUkwgJ2h0dHBzOi8vY3Jhbi5yc3R1ZGlvLmNvbS9iaW4vbWFjb3N4L2NvbnRyaWIvNC4wL2xpZmVjeWNsZV8wLjIuMC50Z3onCkNvbnRlbnQgdHlwZSAnYXBwbGljYXRpb24veC1nemlwJyBsZW5ndGggOTE1OTYgYnl0ZXMgKDg5IEtCKQo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQpkb3dubG9hZGVkIDg5IEtCCgp0cnlpbmcgVVJMICdodHRwczovL2NyYW4ucnN0dWRpby5jb20vYmluL21hY29zeC9jb250cmliLzQuMC9tdW5zZWxsXzAuNS4wLnRneicKQ29udGVudCB0eXBlICdhcHBsaWNhdGlvbi94LWd6aXAnIGxlbmd0aCAyNDE1MDQgYnl0ZXMgKDIzNSBLQikKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KZG93bmxvYWRlZCAyMzUgS0IKCnRyeWluZyBVUkwgJ2h0dHBzOi8vY3Jhbi5yc3R1ZGlvLmNvbS9iaW4vbWFjb3N4L2NvbnRyaWIvNC4wL1I2XzIuNC4xLnRneicKQ29udGVudCB0eXBlICdhcHBsaWNhdGlvbi94LWd6aXAnIGxlbmd0aCA1NzU1MyBieXRlcyAoNTYgS0IpCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CmRvd25sb2FkZWQgNTYgS0IKCnRyeWluZyBVUkwgJ2h0dHBzOi8vY3Jhbi5yc3R1ZGlvLmNvbS9iaW4vbWFjb3N4L2NvbnRyaWIvNC4wL1JDb2xvckJyZXdlcl8xLjEtMi50Z3onCkNvbnRlbnQgdHlwZSAnYXBwbGljYXRpb24veC1nemlwJyBsZW5ndGggNTI5NDQgYnl0ZXMgKDUxIEtCKQo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQpkb3dubG9hZGVkIDUxIEtCCgp0cnlpbmcgVVJMICdodHRwczovL2NyYW4ucnN0dWRpby5jb20vYmluL21hY29zeC9jb250cmliLzQuMC92aXJpZGlzTGl0ZV8wLjMuMC50Z3onCkNvbnRlbnQgdHlwZSAnYXBwbGljYXRpb24veC1nemlwJyBsZW5ndGggNTcwMDUgYnl0ZXMgKDU1IEtCKQo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQpkb3dubG9hZGVkIDU1IEtCCgp0cnlpbmcgVVJMICdodHRwczovL2NyYW4ucnN0dWRpby5jb20vYmluL21hY29zeC9jb250cmliLzQuMC9jbGlfMi4xLjAudGd6JwpDb250ZW50IHR5cGUgJ2FwcGxpY2F0aW9uL3gtZ3ppcCcgbGVuZ3RoIDQwNjIyNyBieXRlcyAoMzk2IEtCKQo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQpkb3dubG9hZGVkIDM5NiBLQgoKdHJ5aW5nIFVSTCAnaHR0cHM6Ly9jcmFuLnJzdHVkaW8uY29tL2Jpbi9tYWNvc3gvY29udHJpYi80LjAvY3JheW9uXzEuMy40LnRneicKQ29udGVudCB0eXBlICdhcHBsaWNhdGlvbi94LWd6aXAnIGxlbmd0aCA3NDg4OTcgYnl0ZXMgKDczMSBLQikKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KZG93bmxvYWRlZCA3MzEgS0IKCnRyeWluZyBVUkwgJ2h0dHBzOi8vY3Jhbi5yc3R1ZGlvLmNvbS9iaW4vbWFjb3N4L2NvbnRyaWIvNC4wL2VsbGlwc2lzXzAuMy4xLnRneicKQ29udGVudCB0eXBlICdhcHBsaWNhdGlvbi94LWd6aXAnIGxlbmd0aCAzMzQ5NyBieXRlcyAoMzIgS0IpCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CmRvd25sb2FkZWQgMzIgS0IKCnRyeWluZyBVUkwgJ2h0dHBzOi8vY3Jhbi5yc3R1ZGlvLmNvbS9iaW4vbWFjb3N4L2NvbnRyaWIvNC4wL2ZhbnNpXzAuNC4xLnRneicKQ29udGVudCB0eXBlICdhcHBsaWNhdGlvbi94LWd6aXAnIGxlbmd0aCAyMTA3MDAgYnl0ZXMgKDIwNSBLQikKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KZG93bmxvYWRlZCAyMDUgS0IKCnRyeWluZyBVUkwgJ2h0dHBzOi8vY3Jhbi5yc3R1ZGlvLmNvbS9iaW4vbWFjb3N4L2NvbnRyaWIvNC4wL3BpbGxhcl8xLjQuNi50Z3onCkNvbnRlbnQgdHlwZSAnYXBwbGljYXRpb24veC1nemlwJyBsZW5ndGggMTc2NDMxIGJ5dGVzICgxNzIgS0IpCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CmRvd25sb2FkZWQgMTcyIEtCCgp0cnlpbmcgVVJMICdodHRwczovL2NyYW4ucnN0dWRpby5jb20vYmluL21hY29zeC9jb250cmliLzQuMC9wa2djb25maWdfMi4wLjMudGd6JwpDb250ZW50IHR5cGUgJ2FwcGxpY2F0aW9uL3gtZ3ppcCcgbGVuZ3RoIDE3NzM4IGJ5dGVzICgxNyBLQikKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KZG93bmxvYWRlZCAxNyBLQgoKdHJ5aW5nIFVSTCAnaHR0cHM6Ly9jcmFuLnJzdHVkaW8uY29tL2Jpbi9tYWNvc3gvY29udHJpYi80LjAvdmN0cnNfMC4zLjQudGd6JwpDb250ZW50IHR5cGUgJ2FwcGxpY2F0aW9uL3gtZ3ppcCcgbGVuZ3RoIDEzMDc4ODggYnl0ZXMgKDEuMiBNQikKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KZG93bmxvYWRlZCAxLjIgTUIKCnRyeWluZyBVUkwgJ2h0dHBzOi8vY3Jhbi5yc3R1ZGlvLmNvbS9iaW4vbWFjb3N4L2NvbnRyaWIvNC4wL2d0YWJsZV8wLjMuMC50Z3onCkNvbnRlbnQgdHlwZSAnYXBwbGljYXRpb24veC1nemlwJyBsZW5ndGggNDMxNTAwIGJ5dGVzICg0MjEgS0IpCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CmRvd25sb2FkZWQgNDIxIEtCCgp0cnlpbmcgVVJMICdodHRwczovL2NyYW4ucnN0dWRpby5jb20vYmluL21hY29zeC9jb250cmliLzQuMC9pc29iYW5kXzAuMi4yLnRneicKQ29udGVudCB0eXBlICdhcHBsaWNhdGlvbi94LWd6aXAnIGxlbmd0aCA0MDE2NjM3IGJ5dGVzICgzLjggTUIpCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CmRvd25sb2FkZWQgMy44IE1CCgp0cnlpbmcgVVJMICdodHRwczovL2NyYW4ucnN0dWRpby5jb20vYmluL21hY29zeC9jb250cmliLzQuMC9zY2FsZXNfMS4xLjEudGd6JwpDb250ZW50IHR5cGUgJ2FwcGxpY2F0aW9uL3gtZ3ppcCcgbGVuZ3RoIDU1Mjg4NSBieXRlcyAoNTM5IEtCKQo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQpkb3dubG9hZGVkIDUzOSBLQgoKdHJ5aW5nIFVSTCAnaHR0cHM6Ly9jcmFuLnJzdHVkaW8uY29tL2Jpbi9tYWNvc3gvY29udHJpYi80LjAvdGliYmxlXzMuMC40LnRneicKQ29udGVudCB0eXBlICdhcHBsaWNhdGlvbi94LWd6aXAnIGxlbmd0aCAzOTMwNjkgYnl0ZXMgKDM4MyBLQikKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KZG93bmxvYWRlZCAzODMgS0IKCnRyeWluZyBVUkwgJ2h0dHBzOi8vY3Jhbi5yc3R1ZGlvLmNvbS9iaW4vbWFjb3N4L2NvbnRyaWIvNC4wL3dpdGhyXzIuMy4wLnRneicKQ29udGVudCB0eXBlICdhcHBsaWNhdGlvbi94LWd6aXAnIGxlbmd0aCAyMDU0ODcgYnl0ZXMgKDIwMCBLQikKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KZG93bmxvYWRlZCAyMDAgS0IKCnRyeWluZyBVUkwgJ2h0dHBzOi8vY3Jhbi5yc3R1ZGlvLmNvbS9iaW4vbWFjb3N4L2NvbnRyaWIvNC4wL2dncGxvdDJfMy4zLjIudGd6JwpDb250ZW50IHR5cGUgJ2FwcGxpY2F0aW9uL3gtZ3ppcCcgbGVuZ3RoIDQwNjQ1MzAgYnl0ZXMgKDMuOSBNQikKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KZG93bmxvYWRlZCAzLjkgTUIKCgpUaGUgZG93bmxvYWRlZCBiaW5hcnkgcGFja2FnZXMgYXJlIGluCgkvdmFyL2ZvbGRlcnMvc3EvcGY0enl5NWoxNXZfejcxamhjM3B6c3c4MDAwMGduL1QvL1J0bXAxSWd0UGMvZG93bmxvYWRlZF9wYWNrYWdlcwo+IGluc3RhbGwucGFja2FnZXMoImUxMDcxIikKdHJ5aW5nIFVSTCAnaHR0cHM6Ly9jcmFuLnJzdHVkaW8uY29tL2Jpbi9tYWNvc3gvY29udHJpYi80LjAvZTEwNzFfMS43LTQudGd6JwpDb250ZW50IHR5cGUgJ2FwcGxpY2F0aW9uL3gtZ3ppcCcgbGVuZ3RoIDg5Mzc5NyBieXRlcyAoODcyIEtCKQo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQpkb3dubG9hZGVkIDg3MiBLQgoKClRoZSBkb3dubG9hZGVkIGJpbmFyeSBwYWNrYWdlcyBhcmUgaW4KCS92YXIvZm9sZGVycy9zcS9wZjR6eXk1ajE1dl96NzFqaGMzcHpzdzgwMDAwZ24vVC8vUnRtcDFJZ3RQYy9kb3dubG9hZGVkX3BhY2thZ2VzCj4gbGlicmFyeShnZ3Bsb3QyKQo+IGNjIDwtIHJlYWQuY3N2KCJhMi9VQ0lfQ3JlZGl0X0NhcmQuY3N2IikKRXJyb3IgaW4gZmlsZShmaWxlLCAicnQiKSA6IGNhbm5vdCBvcGVuIHRoZSBjb25uZWN0aW9uCkluIGFkZGl0aW9uOiBXYXJuaW5nIG1lc3NhZ2U6CkluIGZpbGUoZmlsZSwgInJ0IikgOgogIGNhbm5vdCBvcGVuIGZpbGUgJ2EyL1VDSV9DcmVkaXRfQ2FyZC5jc3YnOiBObyBzdWNoIGZpbGUgb3IgZGlyZWN0b3J5Cj4gY2MkZGVmYXVsdC5wYXltZW50Lm5leHQubW9udGggPC0gZmFjdG9yKGNjJGRlZmF1bHQucGF5bWVudC5uZXh0Lm1vbnRoLGxldmVscz1jKDAsMSksIGxhYmVscz1jKCJObyIsIlllcyIpKQpFcnJvciBpbiBmYWN0b3IoY2MkZGVmYXVsdC5wYXltZW50Lm5leHQubW9udGgsIGxldmVscyA9IGMoMCwgMSksIGxhYmVscyA9IGMoIk5vIiwgIDogCiAgb2JqZWN0ICdjYycgbm90IGZvdW5kCj4gbGlicmFyeShnZ3Bsb3QyKQo+IGNjIDwtIHJlYWQuY3N2KCJhMi9VQ0lfQ3JlZGl0X0NhcmQuY3N2IikKRXJyb3IgaW4gZmlsZShmaWxlLCAicnQiKSA6IGNhbm5vdCBvcGVuIHRoZSBjb25uZWN0aW9uCkluIGFkZGl0aW9uOiBXYXJuaW5nIG1lc3NhZ2U6CkluIGZpbGUoZmlsZSwgInJ0IikgOgogIGNhbm5vdCBvcGVuIGZpbGUgJ2EyL1VDSV9DcmVkaXRfQ2FyZC5jc3YnOiBObyBzdWNoIGZpbGUgb3IgZGlyZWN0b3J5Cj4gY2MkZGVmYXVsdC5wYXltZW50Lm5leHQubW9udGggPC0gZmFjdG9yKGNjJGRlZmF1bHQucGF5bWVudC5uZXh0Lm1vbnRoLGxldmVscz1jKDAsMSksIGxhYmVscz1jKCJObyIsIlllcyIpKQpFcnJvciBpbiBmYWN0b3IoY2MkZGVmYXVsdC5wYXltZW50Lm5leHQubW9udGgsIGxldmVscyA9IGMoMCwgMSksIGxhYmVscyA9IGMoIk5vIiwgIDogCiAgb2JqZWN0ICdjYycgbm90IGZvdW5kCj4gY2MkZGVmYXVsdC5wYXltZW50Lm5leHQubW9udGggPC0gZmFjdG9yKGNjJGRlZmF1bHQucGF5bWVudC5uZXh0Lm1vbnRoLGxldmVscz1jKDAsMSksIGxhYmVscz1jKCJObyIsIlllcyIpKQpFcnJvciBpbiBmYWN0b3IoY2MkZGVmYXVsdC5wYXltZW50Lm5leHQubW9udGgsIGxldmVscyA9IGMoMCwgMSksIGxhYmVscyA9IGMoIk5vIiwgIDogCiAgb2JqZWN0ICdjYycgbm90IGZvdW5kCj4gbGlicmFyeShnZ3Bsb3QyKQo+IGNjIDwtIHJlYWQuY3N2KCJhMi9VQ0lfQ3JlZGl0X0NhcmQuY3N2IikKRXJyb3IgaW4gZmlsZShmaWxlLCAicnQiKSA6IGNhbm5vdCBvcGVuIHRoZSBjb25uZWN0aW9uCkluIGFkZGl0aW9uOiBXYXJuaW5nIG1lc3NhZ2U6CkluIGZpbGUoZmlsZSwgInJ0IikgOgogIGNhbm5vdCBvcGVuIGZpbGUgJ2EyL1VDSV9DcmVkaXRfQ2FyZC5jc3YnOiBObyBzdWNoIGZpbGUgb3IgZGlyZWN0b3J5Cj4gY2MgPC0gcmVhZC5jc3YoIlVDSV9DcmVkaXRfQ2FyZC5jc3YiKQo+IGNjJGRlZmF1bHQucGF5bWVudC5uZXh0Lm1vbnRoIDwtIGZhY3RvcihjYyRkZWZhdWx0LnBheW1lbnQubmV4dC5tb250aCxsZXZlbHM9YygwLDEpLCBsYWJlbHM9YygiTm8iLCJZZXMiKSkKPiBnZ3Bsb3QoY2MsIGFlcyh4PVNFWCwgZmlsbD1kZWZhdWx0LnBheW1lbnQubmV4dC5tb250aCwgY29sb3I9ZGVmYXVsdC5wYXltZW50Lm5leHQubW9udGgpKSArIAorICAgICBnZW9tX2hpc3RvZ3JhbShiaW53aWR0aD0xLCBwb3NpdGlvbj0ic3RhY2siKSArCisgICAgIHNjYWxlX2NvbG9yX21hbnVhbCh2YWx1ZXM9YygiYmxhY2siLCJibGFjayIpKSArCisgICAgIHNjYWxlX2ZpbGxfbWFudWFsKHZhbHVlcz1jKCJkYXJrb2xpdmVncmVlbjQiLCAicmVkIikpCj4gZ2dwbG90KGNjLCBhZXMoeD1NQVJSSUFHRSwgZmlsbD1kZWZhdWx0LnBheW1lbnQubmV4dC5tb250aCwgY29sb3I9ZGVmYXVsdC5wYXltZW50Lm5leHQubW9udGgpKSArIAorICAgICBnZW9tX2hpc3RvZ3JhbShiaW53aWR0aD0xLCBwb3NpdGlvbj0ic3RhY2siKSArCisgICAgIHNjYWxlX2NvbG9yX21hbnVhbCh2YWx1ZXM9YygiYmxhY2siLCJibGFjayIpKSArCisgICAgIHNjYWxlX2ZpbGxfbWFudWFsKHZhbHVlcz1jKCJkYXJrb2xpdmVncmVlbjQiLCAiYmx1ZSIpKQo+IGdncGxvdChjYywgYWVzKHg9UEFZXzAsIGZpbGw9ZGVmYXVsdC5wYXltZW50Lm5leHQubW9udGgsIGNvbG9yPWRlZmF1bHQucGF5bWVudC5uZXh0Lm1vbnRoKSkgKyAKKyAgICAgZ2VvbV9oaXN0b2dyYW0oYmlud2lkdGg9MSwgcG9zaXRpb249InN0YWNrIikgKworICAgICBzY2FsZV9jb2xvcl9tYW51YWwodmFsdWVzPWMoImJsYWNrIiwiYmxhY2siKSkgKworICAgICBzY2FsZV9maWxsX21hbnVhbCh2YWx1ZXM9YygiZGFya29saXZlZ3JlZW40IiwgInJlZCIpKQo+IGdncGxvdChjYywgYWVzKHg9RURVQ0FUSU9OLCBmaWxsPWRlZmF1bHQucGF5bWVudC5uZXh0Lm1vbnRoLCBjb2xvcj1kZWZhdWx0LnBheW1lbnQubmV4dC5tb250aCkpICsgCisgICAgIGdlb21faGlzdG9ncmFtKGJpbndpZHRoPTEsIHBvc2l0aW9uPSJzdGFjayIpICsKKyAgICAgc2NhbGVfY29sb3JfbWFudWFsKHZhbHVlcz1jKCJibGFjayIsImJsYWNrIikpICsKKyAgICAgc2NhbGVfZmlsbF9tYW51YWwodmFsdWVzPWMoImRhcmtvbGl2ZWdyZWVuNCIsICJyZWQiKSkKPiBnZ3Bsb3QoY2MsIGFlcyh4PVNFWCwgZmlsbD1kZWZhdWx0LnBheW1lbnQubmV4dC5tb250aCwgY29sb3I9ZGVmYXVsdC5wYXltZW50Lm5leHQubW9udGgpKSArIAorICAgICBnZW9tX2hpc3RvZ3JhbShiaW53aWR0aD0xLCBwb3NpdGlvbj0ic3RhY2siKSArCisgICAgIHNjYWxlX2NvbG9yX21hbnVhbCh2YWx1ZXM9YygiYmxhY2siLCJibGFjayIpKSArCisgICAgIHNjYWxlX2ZpbGxfbWFudWFsKHZhbHVlcz1jKCJkYXJrb2xpdmVncmVlbjQiLCAicmVkIikpCj4gZ2dwbG90KGNjLCBhZXMoeD1NQVJSSUFHRSwgZmlsbD1kZWZhdWx0LnBheW1lbnQubmV4dC5tb250aCwgY29sb3I9ZGVmYXVsdC5wYXltZW50Lm5leHQubW9udGgpKSArIAorICAgICArICAgICBnZW9tX2hpc3RvZ3JhbShiaW53aWR0aD0xLCBwb3NpdGlvbj0ic3RhY2siKSArCisgICAgICsgICAgIHNjYWxlX2NvbG9yX21hbnVhbCh2YWx1ZXM9YygiYmxhY2siLCJibGFjayIpKSArCisgICAgICsgICAgIHNjYWxlX2ZpbGxfbWFudWFsKHZhbHVlcz1jKCJkYXJrb2xpdmVncmVlbjQiLCAiYmx1ZSIpKQpFcnJvcjogQ2Fubm90IHVzZSBgKy5nZygpYCB3aXRoIGEgc2luZ2xlIGFyZ3VtZW50LiBEaWQgeW91IGFjY2lkZW50YWxseSBwdXQgKyBvbiBhIG5ldyBsaW5lPwpSdW4gYHJsYW5nOjpsYXN0X2Vycm9yKClgIHRvIHNlZSB3aGVyZSB0aGUgZXJyb3Igb2NjdXJyZWQuCj4gZ2dwbG90KGNjLCBhZXMoeD1QQVlfMCwgZmlsbD1kZWZhdWx0LnBheW1lbnQubmV4dC5tb250aCwgY29sb3I9ZGVmYXVsdC5wYXltZW50Lm5leHQubW9udGgpKSArIAorICAgICBnZW9tX2hpc3RvZ3JhbShiaW53aWR0aD0xLCBwb3NpdGlvbj0ic3RhY2siKSArCisgICAgIHNjYWxlX2NvbG9yX21hbnVhbCh2YWx1ZXM9YygiYmxhY2siLCJibGFjayIpKSArCisgICAgIHNjYWxlX2ZpbGxfbWFudWFsKHZhbHVlcz1jKCJkYXJrb2xpdmVncmVlbjQiLCAicmVkIikpCj4gZ2dwbG90KGNjLCBhZXMoeD1QQVlfMiwgZmlsbD1kZWZhdWx0LnBheW1lbnQubmV4dC5tb250aCwgY29sb3I9ZGVmYXVsdC5wYXltZW50Lm5leHQubW9udGgpKSArIAorICAgICBnZW9tX2hpc3RvZ3JhbShiaW53aWR0aD0xLCBwb3NpdGlvbj0ic3RhY2siKSArCisgICAgIHNjYWxlX2NvbG9yX21hbnVhbCh2YWx1ZXM9YygiYmxhY2siLCJibGFjayIpKSArCisgICAgIHNjYWxlX2ZpbGxfbWFudWFsKHZhbHVlcz1jKCJkYXJrb2xpdmVncmVlbjQiLCAicmVkIikpCj4gZ2dwbG90KGNjLCBhZXMoeD1QQVlfMywgZmlsbD1kZWZhdWx0LnBheW1lbnQubmV4dC5tb250aCwgY29sb3I9ZGVmYXVsdC5wYXltZW50Lm5leHQubW9udGgpKSArIAorICAgICBnZW9tX2hpc3RvZ3JhbShiaW53aWR0aD0xLCBwb3NpdGlvbj0ic3RhY2siKSArCisgICAgIHNjYWxlX2NvbG9yX21hbnVhbCh2YWx1ZXM9YygiYmxhY2siLCJibGFjayIpKSArCisgICAgIHNjYWxlX2ZpbGxfbWFudWFsKHZhbHVlcz1jKCJkYXJrb2xpdmVncmVlbjQiLCAicmVkIikpCj4gZ2dwbG90KGNjLCBhZXMoeD1QQVlfNCwgZmlsbD1kZWZhdWx0LnBheW1lbnQubmV4dC5tb250aCwgY29sb3I9ZGVmYXVsdC5wYXltZW50Lm5leHQubW9udGgpKSArIAorICAgICBnZW9tX2hpc3RvZ3JhbShiaW53aWR0aD0xLCBwb3NpdGlvbj0ic3RhY2siKSArCisgICAgIHNjYWxlX2NvbG9yX21hbnVhbCh2YWx1ZXM9YygiYmxhY2siLCJibGFjayIpKSArCisgICAgIHNjYWxlX2ZpbGxfbWFudWFsKHZhbHVlcz1jKCJkYXJrb2xpdmVncmVlbjQiLCAicmVkIikpCj4gZ2dwbG90KGNjLCBhZXMoeD1QQVlfNSwgZmlsbD1kZWZhdWx0LnBheW1lbnQubmV4dC5tb250aCwgY29sb3I9ZGVmYXVsdC5wYXltZW50Lm5leHQubW9udGgpKSArIAorICAgICBnZW9tX2hpc3RvZ3JhbShiaW53aWR0aD0xLCBwb3NpdGlvbj0ic3RhY2siKSArCisgICAgIHNjYWxlX2NvbG9yX21hbnVhbCh2YWx1ZXM9YygiYmxhY2siLCJibGFjayIpKSArCisgICAgIHNjYWxlX2ZpbGxfbWFudWFsKHZhbHVlcz1jKCJkYXJrb2xpdmVncmVlbjQiLCAicmVkIikpCj4gZ2dwbG90KGNjLCBhZXMoeD1QQVlfNiwgZmlsbD1kZWZhdWx0LnBheW1lbnQubmV4dC5tb250aCwgY29sb3I9ZGVmYXVsdC5wYXltZW50Lm5leHQubW9udGgpKSArIAorICAgICBnZW9tX2hpc3RvZ3JhbShiaW53aWR0aD0xLCBwb3NpdGlvbj0ic3RhY2siKSArCisgICAgIHNjYWxlX2NvbG9yX21hbnVhbCh2YWx1ZXM9YygiYmxhY2siLCJibGFjayIpKSArCisgICAgIHNjYWxlX2ZpbGxfbWFudWFsKHZhbHVlcz1jKCJkYXJrb2xpdmVncmVlbjQiLCAicmVkIikpCj4gPiBnZ3Bsb3QoY2MsIGFlcyh4PVBBWV8yLCBmaWxsPWRlZmF1bHQucGF5bWVudC5uZXh0Lm1vbnRoLCBjb2xvcj1kZWZhdWx0LnBheW1lbnQubmV4dC5tb250aCkpICsgCkVycm9yOiB1bmV4cGVjdGVkICc+JyBpbiAiPiIKPiAgICAgKyAgICAgZ2VvbV9oaXN0b2dyYW0oYmlud2lkdGg9MSwgcG9zaXRpb249InN0YWNrIikgKworICAgICArICAgICBzY2FsZV9jb2xvcl9tYW51YWwodmFsdWVzPWMoImJsYWNrIiwiYmxhY2siKSkgKworICAgICArICAgICBzY2FsZV9maWxsX21hbnVhbCh2YWx1ZXM9YygiZGFya29saXZlZ3JlZW40IiwgInJlZCIpKQpFcnJvcjogQ2Fubm90IHVzZSBgKy5nZygpYCB3aXRoIGEgc2luZ2xlIGFyZ3VtZW50LiBEaWQgeW91IGFjY2lkZW50YWxseSBwdXQgKyBvbiBhIG5ldyBsaW5lPwpSdW4gYHJsYW5nOjpsYXN0X2Vycm9yKClgIHRvIHNlZSB3aGVyZSB0aGUgZXJyb3Igb2NjdXJyZWQuCj4gPiBnZ3Bsb3QoY2MsIGFlcyh4PVBBWV8yLCBmaWxsPWRlZmF1bHQucGF5bWVudC5uZXh0Lm1vbnRoLCBjb2xvcj1kZWZhdWx0LnBheW1lbnQubmV4dC5tb250aCkpICsgCkVycm9yOiB1bmV4cGVjdGVkICc+JyBpbiAiPiIKPiAgICAgKyAgICAgZ2VvbV9oaXN0b2dyYW0oYmlud2lkdGg9MSwgcG9zaXRpb249InN0YWNrIikgKworICAgICArICAgICBzY2FsZV9jb2xvcl9tYW51YWwodmFsdWVzPWMoImJsYWNrIiwiYmxhY2siKSkgKworICAgICArICAgICBzY2FsZV9maWxsX21hbnVhbCh2YWx1ZXM9YygiZGFya29saXZlZ3JlZW40IiwgInJlZCIpKQpFcnJvcjogQ2Fubm90IHVzZSBgKy5nZygpYCB3aXRoIGEgc2luZ2xlIGFyZ3VtZW50LiBEaWQgeW91IGFjY2lkZW50YWxseSBwdXQgKyBvbiBhIG5ldyBsaW5lPwpSdW4gYHJsYW5nOjpsYXN0X2Vycm9yKClgIHRvIHNlZSB3aGVyZSB0aGUgZXJyb3Igb2NjdXJyZWQuCj4gPiBnZ3Bsb3QoY2MsIGFlcyh4PVBBWV8yLCBmaWxsPWRlZmF1bHQucGF5bWVudC5uZXh0Lm1vbnRoLCBjb2xvcj1kZWZhdWx0LnBheW1lbnQubmV4dC5tb250aCkpICsgCkVycm9yOiB1bmV4cGVjdGVkICc+JyBpbiAiPiIKPiAgICAgZ2VvbV9oaXN0b2dyYW0oYmlud2lkdGg9MSwgcG9zaXRpb249InN0YWNrIikgKworICAgICBzY2FsZV9jb2xvcl9tYW51YWwodmFsdWVzPWMoImJsYWNrIiwiYmxhY2siKSkgKworICAgICBzY2FsZV9maWxsX21hbnVhbCh2YWx1ZXM9YygiZGFya29saXZlZ3JlZW40IiwgInJlZCIpKQpFcnJvcjogQ2Fubm90IGFkZCBnZ3Byb3RvIG9iamVjdHMgdG9nZXRoZXIuIERpZCB5b3UgZm9yZ2V0IHRvIGFkZCB0aGlzIG9iamVjdCB0byBhIGdncGxvdCBvYmplY3Q/ClJ1biBgcmxhbmc6Omxhc3RfZXJyb3IoKWAgdG8gc2VlIHdoZXJlIHRoZSBlcnJvciBvY2N1cnJlZC4KPiBjYyRTRVggPC0gZmFjdG9yKGNjJFNFWCxsZXZlbHM9YygxLDIpLCBsYWJlbHM9YygiTWFsZSIsICJGZW1hbGUiKSkgCj4gVmlldyhTZXgpCkVycm9yIGluIFZpZXcgOiBvYmplY3QgJ1NleCcgbm90IGZvdW5kCj4gdmlldyhTZXgpCkVycm9yIGluIHZpZXcoU2V4KSA6IGNvdWxkIG5vdCBmaW5kIGZ1bmN0aW9uICJ2aWV3Igo+IFZpZXcoTWFsZSxTZXgpCkVycm9yIGluIFZpZXcgOiBvYmplY3QgJ01hbGUnIG5vdCBmb3VuZAo+IFZpZXcobWFsZSxzZXgpCkVycm9yIGluIFZpZXcgOiBvYmplY3QgJ21hbGUnIG5vdCBmb3VuZAo+IHRyYWluIDwtIGNjW3NhbXBsZShucm93KGNjKSwgNTAwMCksIF0gCj4gbnJvdyh0cmFpbikKWzFdIDUwMDAKPiBWaWV3KHRyYWluKQo+IHRlc3QgPC0gY2NbYygyMCwiMjAwMCIpLF0gICAgICAKPiB0ZXN0CiAgICAgICBJRCBMSU1JVF9CQUwgICAgU0VYIEVEVUNBVElPTiBNQVJSSUFHRSBBR0UgUEFZXzAgUEFZXzIgUEFZXzMgUEFZXzQgUEFZXzUgUEFZXzYgQklMTF9BTVQxCjIwICAgICAyMCAgICAxODAwMDAgRmVtYWxlICAgICAgICAgMSAgICAgICAgMiAgMjkgICAgIDEgICAgLTIgICAgLTIgICAgLTIgICAgLTIgICAgLTIgICAgICAgICAwCjIwMDAgMjAwMCAgICAyMjAwMDAgICBNYWxlICAgICAgICAgMiAgICAgICAgMSAgMzIgICAgIDAgICAgLTEgICAgLTEgICAgLTEgICAgLTEgICAgLTEgICAgICA4MDAwCiAgICAgQklMTF9BTVQyIEJJTExfQU1UMyBCSUxMX0FNVDQgQklMTF9BTVQ1IEJJTExfQU1UNiBQQVlfQU1UMSBQQVlfQU1UMiBQQVlfQU1UMyBQQVlfQU1UNCBQQVlfQU1UNQoyMCAgICAgICAgICAgMCAgICAgICAgIDAgICAgICAgICAwICAgICAgICAgMCAgICAgICAgIDAgICAgICAgIDAgICAgICAgIDAgICAgICAgIDAgICAgICAgIDAgICAgICAgIDAKMjAwMCAgICAgIDgyODggICAgICA4MDAwICAgICAgICAgMCAgICAgIDgwMDAgICAgICAgICAwICAgICA4Mjg4ICAgICA4MDAwICAgICAgICAwICAgICA4MDAwICAgICAgICAwCiAgICAgUEFZX0FNVDYgZGVmYXVsdC5wYXltZW50Lm5leHQubW9udGgKMjAgICAgICAgICAgMCAgICAgICAgICAgICAgICAgICAgICAgICBObwoyMDAwICAgICAgICAwICAgICAgICAgICAgICAgICAgICAgICAgIE5vCj4gbGlicmFyeShlMTA3MSkKPiBuYkRlbSA8LSBuYWl2ZUJheWVzKGRlZmF1bHQucGF5bWVudC5uZXh0Lm1vbnRoIH4gU0VYICsgRURVQ0FUSU9OICsgTUFSUklBR0UsIHRyYWluKQo+IG5iRGVtCgpOYWl2ZSBCYXllcyBDbGFzc2lmaWVyIGZvciBEaXNjcmV0ZSBQcmVkaWN0b3JzCgpDYWxsOgpuYWl2ZUJheWVzLmRlZmF1bHQoeCA9IFgsIHkgPSBZLCBsYXBsYWNlID0gbGFwbGFjZSkKCkEtcHJpb3JpIHByb2JhYmlsaXRpZXM6ClkKICAgIE5vICAgIFllcyAKMC43NzQ4IDAuMjI1MiAKCkNvbmRpdGlvbmFsIHByb2JhYmlsaXRpZXM6CiAgICAgU0VYClkgICAgICAgICAgTWFsZSAgICBGZW1hbGUKICBObyAgMC40MDExMzU4IDAuNTk4ODY0MgogIFllcyAwLjQyNzE3NTggMC41NzI4MjQyCgogICAgIEVEVUNBVElPTgpZICAgICAgICAgWywxXSAgICAgIFssMl0KICBObyAgMS44NDIyODIgMC44MTc4NjA2CiAgWWVzIDEuODc1NjY2IDAuNzIwODU5NQoKICAgICBNQVJSSUFHRQpZICAgICAgICAgWywxXSAgICAgIFssMl0KICBObyAgMS41NTczMDUgMC41MTU2NDE4CiAgWWVzIDEuNTEwNjU3IDAuNTI3NzgxMgoKPiBwcmVkaWN0KG5iRGVtLCB0ZXN0WzIwLF0pClsxXSBObwpMZXZlbHM6IE5vIFllcwo+IHByZWRpY3QobmJEZW0sIHRlc3RbMjAwMCxdKQpbMV0gTm8KTGV2ZWxzOiBObyBZZXMKPiBuYlBheSA8LSBuYWl2ZUJheWVzKGRlZmF1bHQucGF5bWVudC5uZXh0Lm1vbnRoIH4gUEFZXzAgKyBQQVlfMiArIFBBWV8zLCB0cmFpbikKPiBuYlBheQoKTmFpdmUgQmF5ZXMgQ2xhc3NpZmllciBmb3IgRGlzY3JldGUgUHJlZGljdG9ycwoKQ2FsbDoKbmFpdmVCYXllcy5kZWZhdWx0KHggPSBYLCB5ID0gWSwgbGFwbGFjZSA9IGxhcGxhY2UpCgpBLXByaW9yaSBwcm9iYWJpbGl0aWVzOgpZCiAgICBObyAgICBZZXMgCjAuNzc0OCAwLjIyNTIgCgpDb25kaXRpb25hbCBwcm9iYWJpbGl0aWVzOgogICAgIFBBWV8wClkgICAgICAgICAgIFssMV0gICAgIFssMl0KICBObyAgLTAuMTkyODI0MCAwLjkyNzM4NwogIFllcyAgMC42NjUxODY1IDEuMzgwMTA1CgogICAgIFBBWV8yClkgICAgICAgICAgIFssMV0gICAgICBbLDJdCiAgTm8gIC0wLjMwMDIwNjUgMC45OTY0OTAxCiAgWWVzICAwLjQ5MTExOTAgMS41MTk0NzY5CgogICAgIFBBWV8zClkgICAgICAgICAgIFssMV0gICAgIFssMl0KICBObyAgLTAuMzAwNzIyOCAxLjA0NjE0MgogIFllcyAgMC4zNzMwMDE4IDEuNDgzOTQwCgo+IEV4YW1pbmUgdGhlIHByb2JhYmlsaXRpZXMgaW4gdGhlIG1vZGVsOiBpaWNrIGFuZCBjb21wYXJlIHNvbWUgb2YgdGhlIHByb2JhYmlsaXR5IHZhbHVlcy4gRG8gdGhleSBtYWtlIHNlbnNlPyBFeHBsYWluLgpFcnJvcjogdW5leHBlY3RlZCBzeW1ib2wgaW4gIkV4YW1pbmUgdGhlIgo+IAo+IHByZWRpY3QobmJQYXksIHRlc3RbMixdKQpbMV0gTm8KTGV2ZWxzOiBObyBZZXMKPiBwcmVkaWN0KG5iUGF5LCB0ZXN0WyIyMDAwIixdKQpbMV0gTm8KTGV2ZWxzOiBObyBZZXMKPiBuYlBheSA8LSBuYWl2ZUJheWVzKGRlZmF1bHQucGF5bWVudC5uZXh0Lm1vbnRoIH4gUEFZXzAgKyBQQVlfMiArIFBBWV8zLCB0cmFpbiwgbGFwbGFjZT0xLjUpCj4gcHJlZGljdChuYlBheSwgdGVzdFsxLF0pClsxXSBObwpMZXZlbHM6IE5vIFllcwo+IG5iUGF5IDwtIG5haXZlQmF5ZXMoZGVmYXVsdC5wYXltZW50Lm5leHQubW9udGggfiBQQVlfMCArIFBBWV8yICsgUEFZXzMsIHRyYWluLCBsYXBsYWNlPTEuNSkKPiBwcmVkaWN0KG5iUGF5LCB0ZXN0WzUsXSkKWzFdIE5vCkxldmVsczogTm8gWWVzCj4gbmJQYXkgPC0gbmFpdmVCYXllcyhkZWZhdWx0LnBheW1lbnQubmV4dC5tb250aCB+IFBBWV8wICsgUEFZXzIgKyBQQVlfMywgdHJhaW4sIGxhcGxhY2U9MSkKPiBwcmVkaWN0KG5iUGF5LCB0ZXN0WzUsXSkKWzFdIE5vCkxldmVsczogTm8gWWVzCj4gbGlicmFyeSgicnBhcnQiKQo+IGxpYnJhcnkoInJwYXJ0LnBsb3QiKQo+IGR0UGF5IDwtIHJwYXJ0KGRlZmF1bHQucGF5bWVudC5uZXh0Lm1vbnRoIH4gUEFZXzIgKyBQQVlfMyArIFBBWV82LAorICAgICAgICAgICAgICAgIG1ldGhvZD0iY2xhc3MiLAorICAgICAgICAgICAgICAgIGRhdGE9dHJhaW4sIHBhcm1zPWxpc3Qoc3BsaXQ9J2luZm9ybWF0aW9uJyksIAorICAgICAgICAgICAgICAgIG1pbnNwbGl0PTIwLCBjcD0wLjAyKQo+IHJwYXJ0LnBsb3QoZHRQYXksIHR5cGU9NCwgZXh0cmE9MSkKPiBkdFBheSA8LSBycGFydChkZWZhdWx0LnBheW1lbnQubmV4dC5tb250aCB+IFBBWV8wICsgUEFZXzIgKyBQQVlfMywKKyAgICAgbWV0aG9kPSJjbGFzcyIsCisgICAgIGRhdGE9dHJhaW4sIHBhcm1zPWxpc3Qoc3BsaXQ9J2luZm9ybWF0aW9uJyksIAorICAgICBtaW5zcGxpdD0yMCwgY3A9MC4wMDEpCj4gc2F2ZWhpc3RvcnkoIn4vRGVza3RvcC9JTkZPIDY1OS9BMiBIaXN0b3J5LlJoaXN0b3J5IikKPiA=