About

R-Studio is a free and open-source integrated development environment (IDE) for R, a programming language for statistical computing and graphics. The Credit Risk Data displays the credit risk of an individual based on the loan they have taken out and other features of the individual.

Capabilities

R studio is able to compute various statistical and graphical techniques, such as linear and nonlinear modeling, classical statistical tests, time-series analysis, classification, clustering, time series plots, maps, etc.

Setup

After downloading the bdad_lab01 zip folder, make sure to open the folder in the downloads, right click it, and select ‘extract’. This will give you a new unzipped folder. Next, we must set this folder as the working directory. The way to do this is to open R Studio, go to ‘Session’, scroll down to ‘Set Working Directory’, and click ‘To Source File Location’. Now, follow the directions to complete the lab.


Task 1

To begin the Lab, examine the content of the csv file ‘creditrisk.csv’ by opening the file in RStudio. Create a simple star relational schema in erdplus stanalone feature https://erdplus.com/#/standalone, take a screenshot of the image, and upload it below.

Completed Star schema example

Finally export the diagram as an image.

!


Task 2

Next, read the csv file into R Studio. It can be useful to name your data to create a shortcut to it. Here we will label the data, ‘mydata’. To see the data in the console, one can ‘call’ it by referring to it by its given name.

mydata = read.csv(file="data/scoring.csv")
head(mydata)

To capture, or extract, the checking and savings columns and perform some analytics on them, we must first be able to extract the columns from the data separately. Using the ‘$’ sign following the label for the data extracts a specific column. For convenience, we relabel the extracted data.

Below, we have extracted the checking column.

#Extracting the Checking Column
checking = mydata$Checking 
#Calling the Checking Column
checking 
NULL

Now, fill in the code to extract and call the savings column.

#Extracting the Savings Column
savings = mydata$Savings
#Calling the Savings Column
savings
   [1]  4.2000000  4.9800000  1.9800000  7.9333333
   [5]  7.0838710 12.8307692  1.8750000  2.7000000
   [9]  0.8500000 -0.4000000  2.7130435  3.3784615
  [13]  3.9600000  5.5440000  0.6750000  1.4933333
  [17]  4.7200000  4.6000000  3.7090909  4.8960000
  [21]  2.4400000 15.2181818  0.2000000  4.1684211
  [25]  4.3555556  3.6000000  6.3000000  3.5200000
  [29]  0.4000000  3.1418182  6.9300000  6.5600000
  [33]  2.7000000  4.4181818  2.5371429  7.8240000
  [37]  2.4000000  1.6484211  4.0000000  1.6984615
  [41]  4.1333333 12.3157895  3.2160000 -0.1600000
  [45]  4.4347826  4.3714286  5.1360000  6.4000000
  [49]  4.3200000  2.8125000  1.0000000  9.8000000
  [53]  4.5200000  2.1600000  0.7200000  3.9000000
  [57]  3.3000000  3.8000000 18.7500000  5.7377049
  [61]  2.6181818  2.4500000  2.7600000  2.7720000
  [65]  2.2666667  3.1800000  6.2500000  8.8235294
  [69]  2.4900000  7.1200000  2.8200000 12.4000000
  [73] 13.3200000  0.6171429  1.3200000  9.8400000
  [77]  0.0000000  3.7028571  2.9333333  0.3600000
  [81]  5.8909091  0.4235294 13.6800000  7.5000000
  [85]  0.6240000  7.3000000  2.7349229  0.5769231
  [89]  5.1600000  2.2105263  2.8187919 14.9760000
  [93]  8.5950000  7.2000000  4.5000000 13.3920000
  [97]  2.8421053  2.1120000  3.6000000  0.4160000
 [101]  3.1090909  3.8000000  5.6492308  2.5846154
 [105] 14.4000000  3.5200000 11.7500000  2.8500000
 [109]  7.6114286  6.6947368  2.2720000  8.2835821
 [113]  1.5120000 13.8268657  0.6600000  7.4250000
 [117]  3.8347826  2.4757895 13.7142857  5.0000000
 [121]  3.8666667  1.8333333  6.8307692 15.0545455
 [125]  9.1764706  2.5714286  4.8387097  1.8461538
 [129]  2.2320000  4.1052632  0.6428571  4.8461538
 [133]  7.5000000 11.5714286  7.7076923  4.6666667
 [137]  2.8695652  2.4545455  2.9040000  5.4750000
 [141]  1.2600000  1.6421053  5.0040000 20.2353333
 [145]  3.0461538 -0.1270588 16.2857143  2.2000000
 [149]  4.6000000 14.4000000  2.3040000  8.4545455
 [153]  0.0000000  7.2857143  0.7840000  4.0400000
 [157]  1.3600000 12.8571429  1.7760000  2.3225806
 [161]  3.4036364  8.6160000 16.0200000  3.7800000
 [165] 17.5483871  1.6000000  3.0000000  2.5600000
 [169]  0.5076923  6.7200000  3.9111111  1.4823529
 [173]  2.7428571  9.0000000  2.1378579  7.9000000
 [177]  5.2000000 20.6250000  2.6000000  1.6000000
 [181]  4.4336842  0.4285714  5.3520000  2.5000000
 [185]  3.1714286  5.4562909  2.2500000  2.1000000
 [189]  2.2971429  5.2800000  6.4800000  5.1000000
 [193]  1.6800000  0.9900000  2.1000000  0.6315789
 [197]  1.6822430  9.6413793  1.7500000  1.8285714
 [201]  2.7840000  8.9294118  8.0914286  6.0000000
 [205] -1.1280000  5.9600000  1.8000000  3.7800000
 [209]  1.5300000  3.7080000  3.3000000  1.0080000
 [213]  2.5440000  4.7500000  5.6000000  1.2545455
 [217]  3.0240000  3.7200000  4.4727273  6.0000000
 [221]  8.1473684  3.3722628  3.5040000  7.0121951
 [225]  6.2280000  7.0000000  2.9100000  4.7666667
 [229]  3.0600000  2.2000000  0.0000000  4.7400000
 [233]  2.8695652  3.6000000  2.5714286  3.1800000
 [237]  2.9647059 12.1000000  6.6171429  2.6222222
 [241]  3.8400000  3.6000000 11.4600000  6.9529412
 [245]  1.2631579  9.9000000 14.2500000  1.3333333
 [249]  4.8311688  4.7500000  4.4571429  4.5500000
 [253]  3.1309091  4.5000000  3.6000000  4.2923077
 [257] 15.1404000  2.0160000  5.7085714  6.3000000
 [261] 11.2400000  2.6891566  4.9200000  9.2880000
 [265]  7.0129870  6.4285714  1.6800000  8.4960000
 [269]  5.8200000  1.7684211  3.4800000  2.8200000
 [273]  4.2000000  2.5440000  4.5333333 -0.3000000
 [277]  4.6153846 11.3400000  1.9200000  3.4690909
 [281]  6.1600000  3.7800000  0.5294118 13.9636364
 [285]  6.8000000  3.5000000  5.0181818  6.5400000
 [289]  6.5700000  5.9142857  2.1600000  0.1200000
 [293]  3.1456311  1.5000000  4.5257143  0.8640000
 [297]  8.2200000  0.6720000  0.3157895  5.4857143
 [301]  1.8514286 -0.9913043 -0.2000000  2.1600000
 [305]  1.5230769  7.4400000  2.0057143 -0.1440000
 [309]  0.7000000  0.9415385 10.8461539  1.4400000
 [313]  3.9085714  2.3571429  3.1200000  0.8000000
 [317] 14.5600000  2.4500000  1.2218182  6.1714286
 [321]  3.0000000  7.7700000  7.1092437  2.0347826
 [325]  2.6896552 14.3684211 -0.9000000 12.7800000
 [329]  4.0727273  0.3888889  4.9578947 -1.6013592
 [333]  7.1250000 13.2857143  3.3458824  2.7716129
 [337]  3.0000000  4.0800000  2.9200000  3.1090909
 [341]  5.6400000 -0.6250000  5.6290909  5.5457143
 [345] -1.8162162 -1.4117647 -7.2000000  7.6800000
 [349]  1.4400000  2.6040000  5.7303371 -1.8000000
 [353]  8.8800000  2.0250000  1.4400000  3.0580645
 [357]  4.0909091 14.9600000  3.6000000  6.4285714
 [361]  4.3333333  0.1200000  5.6000000  2.3400000
 [365]  2.6511628  7.5420000  4.8000000 -0.4800000
 [369]  5.9250000 15.0000000  7.9800000  3.0923077
 [373]  3.7384615  2.6400000  1.5545455 -4.0806000
 [377]  2.7600000  5.5200000  4.1280000  2.6800000
 [381]  5.1120000  1.9200000 10.2000000 13.5000000
 [385]  1.6615385  4.3058824  5.2800000  4.8000000
 [389]  8.4720000  6.6000000  5.4705882 -0.6720000
 [393]  2.7428571 -1.1868132  4.5600000  6.7200000
 [397]  3.5000000  7.6363636  1.8000000  3.7500000
 [401]  3.7777778  4.8500000  2.8486957  4.9285714
 [405]  3.1285714  3.4971429  2.0800000  2.2560000
 [409]  4.4210526  7.9462500  4.5428571  4.0320000
 [413]  3.0514286  0.2278481  0.0900000 -5.8800000
 [417]  1.3043478  5.3000000  5.5200000  3.9927273
 [421]  4.2666667 -0.5672727  2.0571429  1.2705882
 [425]  2.1857143  4.4800000  2.0088106  2.3595506
 [429]  6.7090909  2.7600000  7.4541176  7.8000000
 [433]  8.1000000  7.8923077  1.3642105  7.0720000
 [437]  1.3440000  4.0000000  9.9840000 -0.1714286
 [441] 12.8571429  1.9869767  2.3294118  4.7454545
 [445]  1.7837838  0.3582090  5.2363636  0.4266667
 [449]  1.0344828  8.3454545  2.8285714  3.6000000
 [453]  7.3000000  6.2400000  6.0857143  1.6363636
 [457]  3.2275862  7.4000000  5.5555556  5.4800000
 [461]  1.2681638  3.0000000  3.0428571  0.4444444
 [465]  3.4800000  1.6363636  4.5818182  2.4000000
 [469]  0.2571429  2.8588235  1.0000000  1.1500000
 [473]  6.5000000  8.9760000 12.5250000  5.2500000
 [477] -0.5866667 12.1714286  3.1600000  1.9800000
 [481]  3.7800000 -0.7200000  0.7285714  1.8461538
 [485]  2.9160000  2.3400000  5.5466667  2.2800000
 [489]  2.3555556  4.0714286  5.8200000  4.2162162
 [493]  1.6695652  2.5894737  3.6000000  8.4000000
 [497]  2.3333333  1.5000000  1.4000000  0.3600000
 [501]  4.1600000  4.4800000  1.8720000  4.0800000
 [505]  5.9294118  5.5875000  0.7200000  5.7000000
 [509]  1.6363636  5.7402062  1.9090909  3.6000000
 [513] 12.1371429  2.2000000  7.2461538  2.4272727
 [517]  6.9750000  1.8200000  2.3040000  5.6000000
 [521] 30.4200000  4.0000000 20.8615385 10.7500000
 [525]  5.3333333  1.6800000  2.6742857  6.2769231
 [529]  3.2400000  7.1563636  2.9880000  0.2076923
 [533]  3.4560000  2.8800000  1.6524590  3.6000000
 [537]  6.1764706  7.8400000  5.7240000  3.0500000
 [541] 10.6666667  7.0400000  3.4800000 -0.5625000
 [545]  0.4698947  0.4137931  3.2231405  7.4000000
 [549]  7.3200000  2.6400000  2.9600000  0.3469880
 [553] -1.0285714  6.8363636 -0.9062500 -0.1800000
 [557]  6.6705882  2.4705882  3.4941176  6.5142857
 [561]  1.1200000  2.0640000  1.3200000  9.9000000
 [565]  0.2571429  5.0800000  2.8581818  2.6619718
 [569]  6.6470588  1.8800000  2.5405091  1.1840000
 [573]  2.6500000  8.6117647  2.9200000  7.9000000
 [577]  3.3600000  0.1551724  3.4800000  2.8500000
 [581]  1.9636364  1.7454545  3.3517241 10.5000000
 [585]  2.8800000  7.7400000  8.7000000  1.4769231
 [589]  6.6428571  2.9454545  1.5750000  0.5454545
 [593]  1.7280000  1.9800000  1.3636364  3.3600000
 [597]  4.1632653  3.1428571  6.7320000  4.0145455
 [601]  0.1200000  2.3333333 20.2800000  2.3791304
 [605]  8.2285714 13.3200000  3.0000000  0.0000000
 [609]  0.8000000  5.1000000 13.5000000  3.0000000
 [613]  3.6955200  0.6776471  4.5176471  2.4000000
 [617]  1.8947368  6.5167883  0.6776471  3.1418182
 [621]  3.6000000 -0.1500000  7.2000000  2.4000000
 [625]  2.2666667  6.6461538  3.9600000  2.7818182
 [629]  2.1600000 10.7368421 17.2444444  2.3261538
 [633]  9.0000000  0.3818182  8.2000000  1.5000000
 [637]  2.4000000  3.1090909  3.6428571  0.9692308
 [641]  0.1125000 -1.3333333  3.7846154  2.6142857
 [645] -0.2571429  2.9280000  3.0260870  3.3646154
 [649]  1.5384615 10.8000000  1.2240000  2.7500000
 [653]  0.1125000  9.0600000  8.7000000  9.8313253
 [657]  6.3473684  5.5862069  1.3800000  2.9217391
 [661]  7.2000000  9.2142857  0.3000000  4.5000000
 [665]  7.9000000 12.4000000  4.1071429  7.5000000
 [669]  3.2400000 -0.4861091  0.9000000  3.6750000
 [673]  5.4276923  7.0451613 -0.2173913  3.7107692
 [677]  3.4457143 16.4000000  2.9090909  0.9000000
 [681]  7.7142857 14.8800000  6.1565217  4.8648649
 [685]  1.0800000  1.3440000  2.1818182 18.9000000
 [689]  3.5625000  0.2817391  3.7894737  3.1680000
 [693]  8.4600000  7.0200000  7.7777778  3.4500000
 [697]  3.2533333  7.0666667  0.6338028  0.4400000
 [701]  6.0000000  6.5505882 -0.4258065  0.7200000
 [705]  3.3000000  3.5733333  5.1840000  2.1000000
 [709]  3.5368421  5.0769231  4.8800000  1.2672000
 [713] -1.4786730  2.3142857 -0.1476923  1.2857143
 [717]  0.6857143  2.3400000  6.9000000  5.8125000
 [721]  2.3680000  3.3517241  3.7894737  5.3866667
 [725]  4.2545455 -0.3750000  0.7363636  6.1333333
 [729]  3.3000000  1.8000000  3.7371429  2.5285714
 [733] 11.0571429  6.6240000  2.3400000  1.1320755
 [737]  4.2500000  1.9569231  3.3912000  2.9008000
 [741]  7.7760000  4.0444444  2.4000000  4.8947368
 [745]  0.9000000 -0.5760000  3.7333333  2.0914286
 [749]  5.2500000  6.7200000  0.1200000  1.2396694
 [753] 23.1000000  3.3692308 -1.6000000  5.1330363
 [757]  6.1333333  2.8000000  6.5000000  2.8235294
 [761]  3.0600000  3.2727273  2.2500000  3.2000000
 [765]  0.5450000  3.4560000  2.2500000  0.3428571
 [769]  0.8000000  2.8000000  9.1764706 20.4857143
 [773]  4.8240000  6.1714286  3.2727273  9.5142857
 [777]  0.6222222 11.7000000 -0.6600000  1.1700000
 [781] -0.3375000  3.8000000  1.0028571  2.4428571
 [785]  1.6740000 12.7358491  4.5000000  2.7230769
 [789]  3.4285714  1.6800000 11.5000000  2.2950000
 [793]  0.2400000  2.7600000  1.9200000  2.3333333
 [797]  6.7800000  4.1400000  5.4171429  4.5333333
 [801]  1.1040000  4.2070588  5.3739130  3.7136842
 [805] 18.7200000  2.9557895 -0.4200000  5.6914286
 [809]  4.7154000  8.3200000 13.6666667  3.6809816
 [813] 10.0884956  1.6500000  5.8500000  6.0000000
 [817]  2.9400000  9.0000000  4.7076923  3.4285714
 [821]  3.6545455  2.7600000 -2.7000000  4.3200000
 [825]  3.0600000 -1.4608696  1.4040000  5.3333333
 [829]  3.5345455 -0.0800000  1.8991304  4.1142857
 [833]  2.9760000  9.0000000  1.9920000  3.4200000
 [837] 30.2000000  6.9176471  0.9000000  4.0500000
 [841] 10.5000000  3.4560000  5.9563636  6.1600000
 [845]  1.9200000  3.8964706  0.2880000 -0.9000000
 [849]  1.5300000  3.9000000  7.0819672  4.6200000
 [853]  2.0600000  7.5789474  0.9913043  4.1538462
 [857]  4.4526316  2.1666667  5.3142857  0.5454545
 [861]  2.8333333  2.1853659 -1.2960000 -1.0800000
 [865]  3.0000000  6.0000000  2.1767442  2.1000000
 [869]  3.6981818  4.7040000  9.4615385  2.9333333
 [873]  5.2800000 -1.9200000  4.3405714  6.6514286
 [877]  5.1958763  2.5875000  3.5345455  0.7800000
 [881]  1.2800000  2.0000000  3.0000000  3.1200000
 [885] -1.0588235  6.4500000 -0.3450000  3.6000000
 [889]  3.5200000  3.3600000  5.0400000  3.7800000
 [893]  5.0666667  2.5600000  1.8897638  5.3076923
 [897]  3.7166667  2.2702703  0.3085714  1.0200000
 [901]  7.6909091  3.0000000  7.5085714  2.3750000
 [905]  4.2000000  2.8421053  3.1200000  2.5548387
 [909]  4.0800000  4.3200000  1.5840000  3.1680000
 [913]  4.5942857  1.6581818  3.7800000  7.6153846
 [917] 26.0000000 16.2576923  2.7000000  2.4000000
 [921]  1.8782609  3.8571429  1.0800000  8.0000000
 [925]  1.5000000  3.7120000  2.2702703  7.4880000
 [929]  2.2560000  5.3742857  2.2758621 -0.3900000
 [933]  8.0616333  2.9364706  1.9285714  0.0000000
 [937] -2.8000000  8.0000000  5.4109091  7.2000000
 [941]  0.2470588 -0.5142857  0.1107692  2.5699482
 [945]  5.1428571  8.2568807  0.9375000 -1.6744186
 [949] -0.5400000 11.6000000  2.1600000  3.0000000
 [953]  0.9120000  6.5454545  4.7040000  2.5200000
 [957]  5.4000000  2.8595745 -8.1600000  8.5371429
 [961]  4.6200000  1.8500000  3.1058824  1.7431579
 [965]  6.8347826  0.5714286  3.3600000  6.3529412
 [969]  2.6000000  3.7800000  3.0000000  0.9600000
 [973]  4.0800000  8.4600000  2.0625000 11.2000000
 [977] 13.0285714 10.6666667  1.9200000 -1.2500000
 [981]  4.2201290  1.2600000  2.2105263  5.5333333
 [985]  1.4100000  1.3764706  4.0800000  1.4500000
 [989]  7.8000000  2.4000000  1.8000000  6.0000000
 [993]  4.8413793  2.4000000  9.6120000  2.8200000
 [997]  5.1264000  3.2470588  2.0100000  1.5000000
 [ reached getOption("max.print") -- omitted 3446 entries ]

In order to calculate the mean, or the average by hand of the checkings columns, one can add each individual entry and divide by the total number or rows. This would take much time, but thankfully, R has a command for this.

We have done an example using the checkings column. Compute the same using the savings column.

#Using the 'mean' function on checking to calculate the checking average and naming the average 'meanChecking'
meanChecking = mean(checking)
argument is not numeric or logical: returning NA
#Calling the average
meanChecking
[1] NA
#Find the average of the savings column and name the average of the savings meanSavings
meanSavings = mean(savings)
#Call mean savings
meanSavings
[1] 3.860083

Next, compute the standard deviation or spread of both the checkings and savings columns.

#Computing the standard deviation of standard deviation
spreadChecking = sd(checking)
#Find the standard deviation of savings 
spreadSaving = sd(savings)
spreadSaving
[1] 3.726292

Now, to compute the SNR, the signal to noise ratio, a formula is created because there is no built in function.

SNR is the mean, or average, divided by the spread.

#Compute the snr of Checking and name it snr_Checking
snr_Checking = meanChecking/spreadChecking
#Call snr_Checking
snr_Checking
[1] NA
#Find the snr of the savings and name it snr_Saving
snr_Saving = meanSavings/spreadSaving
#Call snr_Saving
snr_Saving
[1] 1.035905

Of the Checking and Savings, which has a higher SNR? Why do you think that is? There is no “Checking” number in the scoring data sheet, so the only number to work with is the “savings” number.


Task 3

After using Watson Analytics to find patterns in the data, save your work and upload a screenshot here. Refer to Task 1 on how to upload a photo.

I couldn’t get a screenshot to work, so here is the URL to my analytics page: https://watson.analytics.ibmcloud.com/login?open=eyJpZCI6IkNyZWF0ZU5ld05lb1dvcmtib29rIiwiaW5zdGFuY2VJZCI6IiIsImxpbmtQbGFjZUhvbGRlciI6eyJwYXRoIjoieC92MS91c2Vycy81OTY2ZmVkNWU0YjBkNDUxNDg2ODY5NzIvU2NvcmluZy8%2FQkExJnZpelNwZWM9JTdCJTIydmlldyUyMiUzQTAlMkMlMjJzbG90cyUyMiUzQSU1QiU3QiUyMm5hbWUlMjIlM0ElMjJjYXRlZ29yaWVzJTIyJTJDJTIyYXV0b0RhdGFSZWR1Y3Rpb24lMjIlM0F0cnVlJTJDJTIyYXhpcyUyMiUzQTAlN0QlMkMlN0IlMjJuYW1lJTIyJTNBJTIyc2VyaWVzJTIyJTJDJTIyYXV0b0RhdGFSZWR1Y3Rpb24lMjIlM0F0cnVlJTJDJTIyYXhpcyUyMiUzQW51bGwlN0QlMkMlN0IlMjJuYW1lJTIyJTNBJTIydmFsdWVzJTIyJTJDJTIyYXhpcyUyMiUzQTElMkMlMjJzZWdtZW50cyUyMiUzQSU1QiU3QiUyMm5hbWUlMjIlM0ElMjJ4JTIyJTJDJTIydHVwbGVJbmRleCUyMiUzQTAlN0QlMkMlN0IlMjJuYW1lJTIyJTNBJTIyeSUyMiUyQyUyMnR1cGxlSW5kZXglMjIlM0ExJTdEJTVEJTdEJTVEJTJDJTIyY29udGV4dCUyMiUzQSU1QiU1RCUyQyUyMm9wdGlvbnMlMjIlM0ElNUIlN0IlMjJuYW1lJTIyJTNBJTIyc2hlbGYudHlwZSUyMiUyQyUyMnZhbHVlJTIyJTNBJTIyanVwaXRlciUyMiU3RCUyQyU3QiUyMm5hbWUlMjIlM0ElMjJtZXRhLnZpc2libGUlMjIlMkMlMjJ2YWx1ZSUyMiUzQSUyMnRydWUlMjIlN0QlMkMlN0IlMjJuYW1lJTIyJTNBJTIybWV0YS50eXBlJTIyJTJDJTIydmFsdWUlMjIlM0ElMjJqdXBpdGVydGl0bGUlMjIlN0QlNUQlMkMlMjJ2aXN1YWxpemF0aW9uVHlwZSUyMiUzQSUyMmJ1YmJsZSUyMiU3RCZ2aWV3PSU3QiUyMmF4ZXMlMjIlM0ElNUIlN0IlMjJzZXRzJTIyJTNBJTVCJTdCJTIyc2V0R3JvdXAlMjIlM0EtMSUyQyUyMnNlbGVjdGlvbnMlMjIlM0ElNUIlN0IlMjJhY3Rpb25zJTIyJTNBJTVCJTdCJTIyZGVwdGglMjIlM0ElMjIxJTIyJTJDJTIyYWN0aW9uJTIyJTNBJTIyc2VsZWN0TWVtYmVyc0J5RGVwdGglMjIlMkMlMjJvcGVyYXRpb24lMjIlM0ElMjJzZXQlMjIlN0QlNUQlMkMlMjJoaWVyYXJjaHlVbmlxdWVOYW1lJTIyJTNBJTIyJTVCMCU1RC4lNUJfX3Jvd19pZF9fJTVEJTIyJTdEJTVEJTdEJTVEJTJDJTIyc3VwcHJlc3NNaXNzaW5nJTIyJTNBdHJ1ZSU3RCUyQyU3QiUyMnNldHMlMjIlM0ElNUIlN0IlMjJzZXRHcm91cCUyMiUzQS0xJTJDJTIyc2VsZWN0aW9ucyUyMiUzQSU1QiU3QiUyMmFjdGlvbnMlMjIlM0ElNUIlN0IlMjJhY3Rpb24lMjIlM0ElMjJzZWxlY3RNZW1iZXJzJTIyJTJDJTIybWVtYmVyVW5pcXVlTmFtZXMlMjIlM0ElNUIlMjIlNUIwJTVELiU1QkluY29tZSU1RCUyMiUyQyUyMiU1QjAlNUQuJTVCRXhwZW5zZXMlNUQlMjIlNUQlMkMlMjJvcGVyYXRpb24lMjIlM0ElMjJzZXQlMjIlN0QlNUQlMkMlMjJoaWVyYXJjaHlVbmlxdWVOYW1lJTIyJTNBJTIyTWVhc3VyZXMlMjIlN0QlNUQlN0QlNUQlMkMlMjJzdXBwcmVzc01pc3NpbmclMjIlM0F0cnVlJTdEJTVEJTJDJTIybW9kZWwlMjIlM0ElN0IlMjJkZXJpdmVkQXR0cmlidXRlcyUyMiUzQSU1QiU1RCUyQyUyMmFnZ3JlZ2F0aW9ucyUyMiUzQSU1QiU1RCU3RCU3RCZtb2RlbD0lN0IlMjJoaWVyYXJjaGllcyUyMiUzQSU1QiU1RCU3RCJ9fQ%3D%3D

!

LS0tDQp0aXRsZTogIkJ1c2luZXNzIEFuYWx5dGljcyBMYWIgV29ya3NoZWV0IDAxIg0KYXV0aG9yOiAiSm9yZGFuIFJpZWJlIg0KZGF0ZTogIjcvMTcvMjAxNyINCm91dHB1dDoNCiAgaHRtbF9ub3RlYm9vazogZGVmYXVsdA0KICBodG1sX2RvY3VtZW50OiBkZWZhdWx0DQogIHBkZl9kb2N1bWVudDogZGVmYXVsdA0Kc3VidGl0bGU6IENNRSBHcm91cCBGb3VuZGF0aW9uIEJ1c2luZXNzIEFuYWx5dGljcyBMYWINCi0tLQ0KDQojIyMgQWJvdXQNCg0KUi1TdHVkaW8gaXMgYSBmcmVlIGFuZCBvcGVuLXNvdXJjZSBpbnRlZ3JhdGVkIGRldmVsb3BtZW50IGVudmlyb25tZW50IChJREUpIGZvciBSLCBhIHByb2dyYW1taW5nIGxhbmd1YWdlIGZvciBzdGF0aXN0aWNhbCBjb21wdXRpbmcgYW5kIGdyYXBoaWNzLiBUaGUgQ3JlZGl0IFJpc2sgRGF0YSBkaXNwbGF5cyB0aGUgY3JlZGl0IHJpc2sgb2YgYW4gaW5kaXZpZHVhbCBiYXNlZCBvbiB0aGUgbG9hbiB0aGV5IGhhdmUgdGFrZW4gb3V0IGFuZCBvdGhlciBmZWF0dXJlcyBvZiB0aGUgaW5kaXZpZHVhbC4gDQoNCiMjIyBDYXBhYmlsaXRpZXMNCg0KUiBzdHVkaW8gaXMgYWJsZSB0byBjb21wdXRlIHZhcmlvdXMgc3RhdGlzdGljYWwgYW5kIGdyYXBoaWNhbCB0ZWNobmlxdWVzLCBzdWNoIGFzIGxpbmVhciBhbmQgbm9ubGluZWFyIG1vZGVsaW5nLCBjbGFzc2ljYWwgc3RhdGlzdGljYWwgdGVzdHMsIHRpbWUtc2VyaWVzIGFuYWx5c2lzLCBjbGFzc2lmaWNhdGlvbiwgY2x1c3RlcmluZywgdGltZSBzZXJpZXMgcGxvdHMsIG1hcHMsIGV0Yy4gDQoNCiMjIyBTZXR1cA0KDQpBZnRlciBkb3dubG9hZGluZyB0aGUgYmRhZF9sYWIwMSB6aXAgZm9sZGVyLCBtYWtlIHN1cmUgdG8gb3BlbiB0aGUgZm9sZGVyIGluIHRoZSBkb3dubG9hZHMsIHJpZ2h0IGNsaWNrIGl0LCBhbmQgc2VsZWN0ICdleHRyYWN0Jy4gVGhpcyB3aWxsIGdpdmUgeW91IGEgbmV3IHVuemlwcGVkIGZvbGRlci4gTmV4dCwgd2UgbXVzdCBzZXQgdGhpcyBmb2xkZXIgYXMgdGhlIHdvcmtpbmcgZGlyZWN0b3J5LiBUaGUgd2F5IHRvIGRvIHRoaXMgaXMgdG8gb3BlbiBSIFN0dWRpbywgZ28gdG8gJ1Nlc3Npb24nLCBzY3JvbGwgZG93biB0byAnU2V0IFdvcmtpbmcgRGlyZWN0b3J5JywgYW5kIGNsaWNrICdUbyBTb3VyY2UgRmlsZSBMb2NhdGlvbicuIE5vdywgZm9sbG93IHRoZSBkaXJlY3Rpb25zIHRvIGNvbXBsZXRlIHRoZSBsYWIuIA0KDQotLS0tLS0tLS0tLS0tLQ0KDQojIyMgVGFzayAxDQoNClRvIGJlZ2luIHRoZSBMYWIsIGV4YW1pbmUgdGhlIGNvbnRlbnQgb2YgdGhlIGNzdiBmaWxlICdjcmVkaXRyaXNrLmNzdicgYnkgb3BlbmluZyB0aGUgZmlsZSBpbiBSU3R1ZGlvLiBDcmVhdGUgYSBzaW1wbGUgc3RhciByZWxhdGlvbmFsIHNjaGVtYSBpbiBlcmRwbHVzIHN0YW5hbG9uZSBmZWF0dXJlIFtodHRwczovL2VyZHBsdXMuY29tLyMvc3RhbmRhbG9uZV0oaHR0cHM6Ly9lcmRwbHVzLmNvbS8jL3N0YW5kYWxvbmUpLCB0YWtlIGEgc2NyZWVuc2hvdCBvZiB0aGUgaW1hZ2UsIGFuZCB1cGxvYWQgaXQgYmVsb3cuDQoNCg0KDQojIyMjIyBDb21wbGV0ZWQgU3RhciBzY2hlbWEgZXhhbXBsZQ0KDQpGaW5hbGx5IGV4cG9ydCB0aGUgZGlhZ3JhbSBhcyBhbiBpbWFnZS4NCg0KIVtdKGltZ3MvZXJkcGx1cy1kaWFncmFtLnBuZykNCg0KIQ0KDQotLS0tLS0tLS0tLS0tDQoNCiMjIyBUYXNrIDINCg0KTmV4dCwgcmVhZCB0aGUgY3N2IGZpbGUgaW50byBSIFN0dWRpby4gSXQgY2FuIGJlIHVzZWZ1bCB0byBuYW1lIHlvdXIgZGF0YSB0byBjcmVhdGUgYSBzaG9ydGN1dCB0byBpdC4gSGVyZSB3ZSB3aWxsIGxhYmVsIHRoZSBkYXRhLCAnbXlkYXRhJy4gVG8gc2VlIHRoZSBkYXRhIGluIHRoZSBjb25zb2xlLCBvbmUgY2FuICdjYWxsJyBpdCBieSByZWZlcnJpbmcgdG8gaXQgYnkgaXRzIGdpdmVuIG5hbWUuDQoNCmBgYHtyfQ0KbXlkYXRhID0gcmVhZC5jc3YoZmlsZT0iZGF0YS9zY29yaW5nLmNzdiIpDQpoZWFkKG15ZGF0YSkNCmBgYA0KDQpUbyBjYXB0dXJlLCBvciBleHRyYWN0LCB0aGUgY2hlY2tpbmcgYW5kIHNhdmluZ3MgY29sdW1ucyBhbmQgcGVyZm9ybSBzb21lIGFuYWx5dGljcyBvbiB0aGVtLCB3ZSBtdXN0IGZpcnN0IGJlIGFibGUgdG8gZXh0cmFjdCB0aGUgY29sdW1ucyBmcm9tIHRoZSBkYXRhIHNlcGFyYXRlbHkuIFVzaW5nIHRoZSAnJCcgc2lnbiBmb2xsb3dpbmcgdGhlIGxhYmVsIGZvciB0aGUgZGF0YSBleHRyYWN0cyBhIHNwZWNpZmljIGNvbHVtbi4gRm9yIGNvbnZlbmllbmNlLCB3ZSByZWxhYmVsIHRoZSBleHRyYWN0ZWQgZGF0YS4gDQoNCkJlbG93LCB3ZSBoYXZlIGV4dHJhY3RlZCB0aGUgY2hlY2tpbmcgY29sdW1uLiANCg0KYGBge3J9DQojRXh0cmFjdGluZyB0aGUgQ2hlY2tpbmcgQ29sdW1uDQpjaGVja2luZyA9IG15ZGF0YSRDaGVja2luZyANCg0KI0NhbGxpbmcgdGhlIENoZWNraW5nIENvbHVtbg0KY2hlY2tpbmcgDQpgYGANCg0KTm93LCBmaWxsIGluIHRoZSBjb2RlIHRvIGV4dHJhY3QgYW5kIGNhbGwgdGhlIHNhdmluZ3MgY29sdW1uLg0KDQpgYGB7cn0NCiNFeHRyYWN0aW5nIHRoZSBTYXZpbmdzIENvbHVtbg0Kc2F2aW5ncyA9IG15ZGF0YSRTYXZpbmdzDQoNCiNDYWxsaW5nIHRoZSBTYXZpbmdzIENvbHVtbg0Kc2F2aW5ncw0KYGBgDQoNCg0KSW4gb3JkZXIgdG8gY2FsY3VsYXRlIHRoZSBtZWFuLCBvciB0aGUgYXZlcmFnZSBieSBoYW5kIG9mIHRoZSBjaGVja2luZ3MgY29sdW1ucywgb25lIGNhbiBhZGQgZWFjaCBpbmRpdmlkdWFsIGVudHJ5IGFuZCBkaXZpZGUgYnkgdGhlIHRvdGFsIG51bWJlciBvciByb3dzLiBUaGlzIHdvdWxkIHRha2UgbXVjaCB0aW1lLCBidXQgdGhhbmtmdWxseSwgUiBoYXMgYSBjb21tYW5kIGZvciB0aGlzLiANCg0KV2UgaGF2ZSBkb25lIGFuIGV4YW1wbGUgdXNpbmcgdGhlIGNoZWNraW5ncyBjb2x1bW4uIENvbXB1dGUgdGhlIHNhbWUgdXNpbmcgdGhlIHNhdmluZ3MgY29sdW1uLiANCg0KYGBge3J9DQojVXNpbmcgdGhlICdtZWFuJyBmdW5jdGlvbiBvbiBjaGVja2luZyB0byBjYWxjdWxhdGUgdGhlIGNoZWNraW5nIGF2ZXJhZ2UgYW5kIG5hbWluZyB0aGUgYXZlcmFnZSAnbWVhbkNoZWNraW5nJw0KbWVhbkNoZWNraW5nID0gbWVhbihjaGVja2luZykNCg0KI0NhbGxpbmcgdGhlIGF2ZXJhZ2UNCm1lYW5DaGVja2luZw0KDQojRmluZCB0aGUgYXZlcmFnZSBvZiB0aGUgc2F2aW5ncyBjb2x1bW4gYW5kIG5hbWUgdGhlIGF2ZXJhZ2Ugb2YgdGhlIHNhdmluZ3MgbWVhblNhdmluZ3MNCm1lYW5TYXZpbmdzID0gbWVhbihzYXZpbmdzKQ0KDQojQ2FsbCBtZWFuIHNhdmluZ3MNCm1lYW5TYXZpbmdzDQpgYGANCg0KTmV4dCwgY29tcHV0ZSB0aGUgc3RhbmRhcmQgZGV2aWF0aW9uIG9yIHNwcmVhZCBvZiBib3RoIHRoZSBjaGVja2luZ3MgYW5kIHNhdmluZ3MgY29sdW1ucy4gDQoNCmBgYHtyfQ0KI0NvbXB1dGluZyB0aGUgc3RhbmRhcmQgZGV2aWF0aW9uIG9mIHN0YW5kYXJkIGRldmlhdGlvbg0Kc3ByZWFkQ2hlY2tpbmcgPSBzZChjaGVja2luZykNCg0KI0ZpbmQgdGhlIHN0YW5kYXJkIGRldmlhdGlvbiBvZiBzYXZpbmdzIA0Kc3ByZWFkU2F2aW5nID0gc2Qoc2F2aW5ncykNCnNwcmVhZFNhdmluZw0KDQpgYGANCg0KTm93LCB0byBjb21wdXRlIHRoZSBTTlIsIHRoZSBzaWduYWwgdG8gbm9pc2UgcmF0aW8sIGEgZm9ybXVsYSBpcyBjcmVhdGVkIGJlY2F1c2UgdGhlcmUgaXMgbm8gYnVpbHQgaW4gZnVuY3Rpb24uIA0KDQpTTlIgaXMgdGhlIG1lYW4sIG9yIGF2ZXJhZ2UsIGRpdmlkZWQgYnkgdGhlIHNwcmVhZC4gDQoNCmBgYHtyfQ0KI0NvbXB1dGUgdGhlIHNuciBvZiBDaGVja2luZyBhbmQgbmFtZSBpdCBzbnJfQ2hlY2tpbmcNCnNucl9DaGVja2luZyA9IG1lYW5DaGVja2luZy9zcHJlYWRDaGVja2luZw0KDQojQ2FsbCBzbnJfQ2hlY2tpbmcNCnNucl9DaGVja2luZw0KDQojRmluZCB0aGUgc25yIG9mIHRoZSBzYXZpbmdzIGFuZCBuYW1lIGl0IHNucl9TYXZpbmcNCnNucl9TYXZpbmcgPSBtZWFuU2F2aW5ncy9zcHJlYWRTYXZpbmcNCg0KI0NhbGwgc25yX1NhdmluZw0Kc25yX1NhdmluZw0KDQpgYGANCg0KT2YgdGhlIENoZWNraW5nIGFuZCBTYXZpbmdzLCB3aGljaCBoYXMgYSBoaWdoZXIgU05SPyBXaHkgZG8geW91IHRoaW5rIHRoYXQgaXM/DQpUaGVyZSBpcyBubyAiQ2hlY2tpbmciIG51bWJlciBpbiB0aGUgc2NvcmluZyBkYXRhIHNoZWV0LCBzbyB0aGUgb25seSBudW1iZXIgdG8gd29yayB3aXRoIGlzIHRoZSAic2F2aW5ncyIgbnVtYmVyLg0KDQotLS0tLS0tLS0tLS0NCg0KIyMjIFRhc2sgMw0KDQpBZnRlciB1c2luZyBXYXRzb24gQW5hbHl0aWNzIHRvIGZpbmQgcGF0dGVybnMgaW4gdGhlIGRhdGEsIHNhdmUgeW91ciB3b3JrIGFuZCB1cGxvYWQgYSBzY3JlZW5zaG90IGhlcmUuIFJlZmVyIHRvIFRhc2sgMSBvbiBob3cgdG8gdXBsb2FkIGEgcGhvdG8uDQoNCiFbXShpbWdzL0lCTSBXYXRzb24gQW5hbHl0aWNzLmh0bWwpDQoNCkkgY291bGRuJ3QgZ2V0IGEgc2NyZWVuc2hvdCB0byB3b3JrLCBzbyBoZXJlIGlzIHRoZSBVUkwgdG8gbXkgYW5hbHl0aWNzIHBhZ2U6IGh0dHBzOi8vd2F0c29uLmFuYWx5dGljcy5pYm1jbG91ZC5jb20vbG9naW4/b3Blbj1leUpwWkNJNklrTnlaV0YwWlU1bGQwNWxiMWR2Y210aWIyOXJJaXdpYVc1emRHRnVZMlZKWkNJNklpSXNJbXhwYm10UWJHRmpaVWh2YkdSbGNpSTZleUp3WVhSb0lqb2llQzkyTVM5MWMyVnljeTgxT1RZMlptVmtOV1UwWWpCa05EVXhORGcyT0RZNU56SXZVMk52Y21sdVp5OCUyRlFrRXhKblpwZWxOd1pXTTlKVGRDSlRJeWRtbGxkeVV5TWlVelFUQWxNa01sTWpKemJHOTBjeVV5TWlVelFTVTFRaVUzUWlVeU1tNWhiV1VsTWpJbE0wRWxNakpqWVhSbFoyOXlhV1Z6SlRJeUpUSkRKVEl5WVhWMGIwUmhkR0ZTWldSMVkzUnBiMjRsTWpJbE0wRjBjblZsSlRKREpUSXlZWGhwY3lVeU1pVXpRVEFsTjBRbE1rTWxOMElsTWpKdVlXMWxKVEl5SlROQkpUSXljMlZ5YVdWekpUSXlKVEpESlRJeVlYVjBiMFJoZEdGU1pXUjFZM1JwYjI0bE1qSWxNMEYwY25WbEpUSkRKVEl5WVhocGN5VXlNaVV6UVc1MWJHd2xOMFFsTWtNbE4wSWxNakp1WVcxbEpUSXlKVE5CSlRJeWRtRnNkV1Z6SlRJeUpUSkRKVEl5WVhocGN5VXlNaVV6UVRFbE1rTWxNakp6WldkdFpXNTBjeVV5TWlVelFTVTFRaVUzUWlVeU1tNWhiV1VsTWpJbE0wRWxNako0SlRJeUpUSkRKVEl5ZEhWd2JHVkpibVJsZUNVeU1pVXpRVEFsTjBRbE1rTWxOMElsTWpKdVlXMWxKVEl5SlROQkpUSXllU1V5TWlVeVF5VXlNblIxY0d4bFNXNWtaWGdsTWpJbE0wRXhKVGRFSlRWRUpUZEVKVFZFSlRKREpUSXlZMjl1ZEdWNGRDVXlNaVV6UVNVMVFpVTFSQ1V5UXlVeU1tOXdkR2x2Ym5NbE1qSWxNMEVsTlVJbE4wSWxNakp1WVcxbEpUSXlKVE5CSlRJeWMyaGxiR1l1ZEhsd1pTVXlNaVV5UXlVeU1uWmhiSFZsSlRJeUpUTkJKVEl5YW5Wd2FYUmxjaVV5TWlVM1JDVXlReVUzUWlVeU1tNWhiV1VsTWpJbE0wRWxNakp0WlhSaExuWnBjMmxpYkdVbE1qSWxNa01sTWpKMllXeDFaU1V5TWlVelFTVXlNblJ5ZFdVbE1qSWxOMFFsTWtNbE4wSWxNakp1WVcxbEpUSXlKVE5CSlRJeWJXVjBZUzUwZVhCbEpUSXlKVEpESlRJeWRtRnNkV1VsTWpJbE0wRWxNakpxZFhCcGRHVnlkR2wwYkdVbE1qSWxOMFFsTlVRbE1rTWxNakoyYVhOMVlXeHBlbUYwYVc5dVZIbHdaU1V5TWlVelFTVXlNbUoxWW1Kc1pTVXlNaVUzUkNaMmFXVjNQU1UzUWlVeU1tRjRaWE1sTWpJbE0wRWxOVUlsTjBJbE1qSnpaWFJ6SlRJeUpUTkJKVFZDSlRkQ0pUSXljMlYwUjNKdmRYQWxNaklsTTBFdE1TVXlReVV5TW5ObGJHVmpkR2x2Ym5NbE1qSWxNMEVsTlVJbE4wSWxNakpoWTNScGIyNXpKVEl5SlROQkpUVkNKVGRDSlRJeVpHVndkR2dsTWpJbE0wRWxNakl4SlRJeUpUSkRKVEl5WVdOMGFXOXVKVEl5SlROQkpUSXljMlZzWldOMFRXVnRZbVZ5YzBKNVJHVndkR2dsTWpJbE1rTWxNakp2Y0dWeVlYUnBiMjRsTWpJbE0wRWxNakp6WlhRbE1qSWxOMFFsTlVRbE1rTWxNakpvYVdWeVlYSmphSGxWYm1seGRXVk9ZVzFsSlRJeUpUTkJKVEl5SlRWQ01DVTFSQzRsTlVKZlgzSnZkMTlwWkY5ZkpUVkVKVEl5SlRkRUpUVkVKVGRFSlRWRUpUSkRKVEl5YzNWd2NISmxjM05OYVhOemFXNW5KVEl5SlROQmRISjFaU1UzUkNVeVF5VTNRaVV5TW5ObGRITWxNaklsTTBFbE5VSWxOMElsTWpKelpYUkhjbTkxY0NVeU1pVXpRUzB4SlRKREpUSXljMlZzWldOMGFXOXVjeVV5TWlVelFTVTFRaVUzUWlVeU1tRmpkR2x2Ym5NbE1qSWxNMEVsTlVJbE4wSWxNakpoWTNScGIyNGxNaklsTTBFbE1qSnpaV3hsWTNSTlpXMWlaWEp6SlRJeUpUSkRKVEl5YldWdFltVnlWVzVwY1hWbFRtRnRaWE1sTWpJbE0wRWxOVUlsTWpJbE5VSXdKVFZFTGlVMVFrbHVZMjl0WlNVMVJDVXlNaVV5UXlVeU1pVTFRakFsTlVRdUpUVkNSWGh3Wlc1elpYTWxOVVFsTWpJbE5VUWxNa01sTWpKdmNHVnlZWFJwYjI0bE1qSWxNMEVsTWpKelpYUWxNaklsTjBRbE5VUWxNa01sTWpKb2FXVnlZWEpqYUhsVmJtbHhkV1ZPWVcxbEpUSXlKVE5CSlRJeVRXVmhjM1Z5WlhNbE1qSWxOMFFsTlVRbE4wUWxOVVFsTWtNbE1qSnpkWEJ3Y21WemMwMXBjM05wYm1jbE1qSWxNMEYwY25WbEpUZEVKVFZFSlRKREpUSXliVzlrWld3bE1qSWxNMEVsTjBJbE1qSmtaWEpwZG1Wa1FYUjBjbWxpZFhSbGN5VXlNaVV6UVNVMVFpVTFSQ1V5UXlVeU1tRm5aM0psWjJGMGFXOXVjeVV5TWlVelFTVTFRaVUxUkNVM1JDVTNSQ1p0YjJSbGJEMGxOMElsTWpKb2FXVnlZWEpqYUdsbGN5VXlNaVV6UVNVMVFpVTFSQ1UzUkNKOWZRJTNEJTNEDQoNCiENCg==