Course Description

The main goal of this course is to

  1. provide a framework for applying basic statistical learning methods to build predictive models or perform exploratory analysis,
  2. properly tune, select, and validate statistical learning models, and
  3. build an ensemble of learning algorithms. Topics include the concepts of Ordinary Least Squares, Subset Selection, Regularization, Dimension Reduction, Classification, Cross-validation, Bootstrapping, and Ensemble learning.

Learning Goal

UNIST School of Business Administration (SBA) is currently preparing for achieving International Accreditation by the AACSB International - the Association to Advance Collegiate Schools of Business, which represents the highest standard of achievement for business schools worldwide. Less than 5% of the world’s 13,000 business programs have earned this distinction. AACSB accreditation means students will receive relevant knowledge, challenging courses, useful skills, easier access to employers, and a wealth of resources to help them succeed. One of the main steps toward accreditation is Assurance of Learning, which “refers to processes for demonstrating that students achieve learning expectations for the programs in which they participate. Assurance of learning also assists the school and faculty members to improve programs and courses. By measuring learning, the school can evaluate its students’ success at achieving learning goals, use the measures to plan improvement efforts, and (depending on the type of measures) provide feedback and guidance for individual students” (Eligibility Procedures and Accreditation Standards for Business Accreditation, AACSB International - the Association to Advance Collegiate Schools of Business) Accordingly, the Business Communication course has been chosen for the assessment purposes in the 2016 spring semester. The students who take this course will be assessed according to the following learning goal developed by the School:

  1. GLG.3 Able to develop creative approaches in research and solving theoretical and practical problems. They will be
  1. GLG 5. Our graduates will be able to demonstrate the extensive knowledge in the particular area of interest. They will be

Weekly Schedule

  1. 2/27 Course Orientation
  1. Download and install R.
  2. Download the PDF textbook An Introduction to Statistical Learning with Applications in R ISLR Seventh Printing.
  3. Import library “ISLR” within R.
  4. Download all datasets the ISLR R package with all datasets for the text.
  5. Read ISLR chapter 1 and chapter 2 through section 2.1.2 (pp. 1-24).
  6. Optionally watch these supplementary videos:
  1. 3/06 Ordinary Least Square
  1. Read chapter 3 through the end of section 3.2 (p. 82).
  2. Do the guided lab of section 3.6 through 3.6.3.
  3. Optionally watch these supplementary videos.
  1. 3/13 Subset Selection
  1. 3/20 Regularization
  1. 3/27 Generalized Additive Model
  1. Read chapter 7 and complete the guided lab.
  2. Optionally watch these supplementary videos.
  1. 4/03 Discriminant Analysis
  1. Read chapter 4 and complete the guided lab.
  2. Optionally watch these supplementary videos.
  1. 4/10 Logistic Regression
  1. Read chapter 4 and complete the guided lab.
  2. Optionally watch these supplementary videos.
  1. 4/17 Accuracy, Precision, and Recall
  1. Read chapter 5 and complete the guided lab.
  2. Optionally watch these supplementary videos.
  1. 4/24 Support Vector Machine
  1. 5/01 Principal Component Analysis
  1. 5/08 K-means Clustering
  1. 5/15 Hierarchical Clustering
  1. 5/22 No class. Buddha’s birthday.

  2. 5/29 Classification and Regression Tree
  1. 6/05 Bagging and Boosting
  1. 6/12 Review and Discussion


par(mar = c(4, 4, .1, .1))
with(mtcars, {
plot(mpg~hp, pch=20, col='darkgray')
lines(lowess(hp, mpg))
})

plot(cars)

Add a new chunk by clicking the Insert Chunk button on the toolbar or by pressing Ctrl+Alt+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 Ctrl+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.

LS0tDQp0aXRsZTogIlN0YXRpc3RpY2FsIExlYXJuaW5nIg0Kb3V0cHV0OiBodG1sX25vdGVib29rDQotLS0NCg0KDQotLS0NCg0KIyMjIENvdXJzZSBEZXNjcmlwdGlvbiANCg0KVGhlIG1haW4gZ29hbCBvZiB0aGlzIGNvdXJzZSBpcyB0byANCg0KIChpKSBwcm92aWRlIGEgZnJhbWV3b3JrIGZvciBhcHBseWluZyBiYXNpYyBzdGF0aXN0aWNhbCBsZWFybmluZyBtZXRob2RzIHRvIGJ1aWxkIHByZWRpY3RpdmUgbW9kZWxzIG9yIHBlcmZvcm0gZXhwbG9yYXRvcnkgYW5hbHlzaXMsIA0KIChpaSkgcHJvcGVybHkgdHVuZSwgc2VsZWN0LCBhbmQgdmFsaWRhdGUgc3RhdGlzdGljYWwgbGVhcm5pbmcgbW9kZWxzLCBhbmQgDQogKGlpaSkgYnVpbGQgYW4gZW5zZW1ibGUgb2YgbGVhcm5pbmcgYWxnb3JpdGhtcy4NClRvcGljcyBpbmNsdWRlIHRoZSBjb25jZXB0cyBvZiBPcmRpbmFyeSBMZWFzdCBTcXVhcmVzLCBTdWJzZXQgU2VsZWN0aW9uLCBSZWd1bGFyaXphdGlvbiwgRGltZW5zaW9uIFJlZHVjdGlvbiwgDQpDbGFzc2lmaWNhdGlvbiwgQ3Jvc3MtdmFsaWRhdGlvbiwgQm9vdHN0cmFwcGluZywgYW5kIEVuc2VtYmxlIGxlYXJuaW5nLg0KDQotLS0NCi0tLQ0KIyMjIExlYXJuaW5nIEdvYWwgCQkJCQkNCg0KVU5JU1QgU2Nob29sIG9mIEJ1c2luZXNzIEFkbWluaXN0cmF0aW9uIChTQkEpIGlzIGN1cnJlbnRseSBwcmVwYXJpbmcgZm9yIGFjaGlldmluZyBJbnRlcm5hdGlvbmFsIEFjY3JlZGl0YXRpb24gYnkgdGhlIEFBQ1NCIEludGVybmF0aW9uYWwgLSB0aGUgQXNzb2NpYXRpb24gdG8gQWR2YW5jZSBDb2xsZWdpYXRlIFNjaG9vbHMgb2YgQnVzaW5lc3MsIHdoaWNoIHJlcHJlc2VudHMgdGhlIGhpZ2hlc3Qgc3RhbmRhcmQgb2YgYWNoaWV2ZW1lbnQgZm9yIGJ1c2luZXNzIHNjaG9vbHMgd29ybGR3aWRlLiBMZXNzIHRoYW4gNSUgb2YgdGhlIHdvcmxkJ3MgMTMsMDAwIGJ1c2luZXNzIHByb2dyYW1zIGhhdmUgZWFybmVkIHRoaXMgZGlzdGluY3Rpb24uIEFBQ1NCIGFjY3JlZGl0YXRpb24gbWVhbnMgc3R1ZGVudHMgd2lsbCByZWNlaXZlIHJlbGV2YW50IGtub3dsZWRnZSwgY2hhbGxlbmdpbmcgY291cnNlcywgdXNlZnVsIHNraWxscywgZWFzaWVyIGFjY2VzcyB0byBlbXBsb3llcnMsIGFuZCBhIHdlYWx0aCBvZiByZXNvdXJjZXMgdG8gaGVscCB0aGVtIHN1Y2NlZWQuIA0KT25lIG9mIHRoZSBtYWluIHN0ZXBzIHRvd2FyZCBhY2NyZWRpdGF0aW9uIGlzIEFzc3VyYW5jZSBvZiBMZWFybmluZywgd2hpY2gg4oCccmVmZXJzIHRvIHByb2Nlc3NlcyBmb3IgZGVtb25zdHJhdGluZyB0aGF0IHN0dWRlbnRzIGFjaGlldmUgbGVhcm5pbmcgZXhwZWN0YXRpb25zIGZvciB0aGUgcHJvZ3JhbXMgaW4gd2hpY2ggdGhleSBwYXJ0aWNpcGF0ZS4gQXNzdXJhbmNlIG9mIGxlYXJuaW5nIGFsc28gYXNzaXN0cyB0aGUgc2Nob29sIGFuZCBmYWN1bHR5IG1lbWJlcnMgdG8gaW1wcm92ZSBwcm9ncmFtcyBhbmQgY291cnNlcy4gQnkgbWVhc3VyaW5nIGxlYXJuaW5nLCB0aGUgc2Nob29sIGNhbiBldmFsdWF0ZSBpdHMgc3R1ZGVudHPigJkgc3VjY2VzcyBhdCBhY2hpZXZpbmcgbGVhcm5pbmcgZ29hbHMsIHVzZSB0aGUgbWVhc3VyZXMgdG8gcGxhbiBpbXByb3ZlbWVudCBlZmZvcnRzLCBhbmQgKGRlcGVuZGluZyBvbiB0aGUgdHlwZSBvZiBtZWFzdXJlcykgcHJvdmlkZSBmZWVkYmFjayBhbmQgZ3VpZGFuY2UgZm9yIGluZGl2aWR1YWwgc3R1ZGVudHPigJ0gKEVsaWdpYmlsaXR5IFByb2NlZHVyZXMgYW5kIEFjY3JlZGl0YXRpb24gU3RhbmRhcmRzIGZvciBCdXNpbmVzcyBBY2NyZWRpdGF0aW9uLCBBQUNTQiBJbnRlcm5hdGlvbmFsIC0gdGhlIEFzc29jaWF0aW9uIHRvIEFkdmFuY2UgQ29sbGVnaWF0ZSBTY2hvb2xzIG9mIEJ1c2luZXNzKQ0KQWNjb3JkaW5nbHksIHRoZSBCdXNpbmVzcyBDb21tdW5pY2F0aW9uIGNvdXJzZSBoYXMgYmVlbiBjaG9zZW4gZm9yIHRoZSBhc3Nlc3NtZW50IHB1cnBvc2VzIGluIHRoZSAyMDE2IHNwcmluZyBzZW1lc3Rlci4gVGhlIHN0dWRlbnRzIHdobyB0YWtlIHRoaXMgY291cnNlIHdpbGwgYmUgYXNzZXNzZWQgYWNjb3JkaW5nIHRvIHRoZSBmb2xsb3dpbmcgbGVhcm5pbmcgZ29hbCBkZXZlbG9wZWQgYnkgdGhlIFNjaG9vbDoNCg0KDQogICAxLiBHTEcuMyBBYmxlIHRvIGRldmVsb3AgY3JlYXRpdmUgYXBwcm9hY2hlcyBpbiByZXNlYXJjaCBhbmQgc29sdmluZyB0aGVvcmV0aWNhbCBhbmQgcHJhY3RpY2FsIHByb2JsZW1zLiAgVGhleSB3aWxsIGJlDQogICANCiAgICsgM2IgQWJsZSB0byBkZXZlbG9wIGEgY3JpdGljYWwgYW5kIHJlZmxlY3RpdmUgYXBwcm9hY2ggdG8gcmVzZWFyY2ggYW5kIGFwcGxpY2F0aW9uIG9mIG1hbmFnZW1lbnQgdGhlb3J5IGFuZCBwcmFjdGljZS4gDQogICANCiAgIDIuIEdMRyA1LiBPdXIgZ3JhZHVhdGVzIHdpbGwgYmUgYWJsZSB0byBkZW1vbnN0cmF0ZSB0aGUgZXh0ZW5zaXZlIGtub3dsZWRnZSBpbiB0aGUgcGFydGljdWxhciBhcmVhIG9mIGludGVyZXN0LiAgVGhleSB3aWxsIGJlDQogICANCiAgICsgNWEgQWJsZSB0byB1bmRlcnN0YW5kIHRoZSBtYWluIHJlc2VhcmNoIHN0cmVhbSBpbiB0aGUgcGFydGljdWxhciBhcmVhIG9mIGludGVyZXN0Lg0KICAgDQoNCi0tLQ0KDQojIyMgV2Vla2x5IFNjaGVkdWxlCQ0KDQoNCjEuIDIvMjcJQ291cnNlIE9yaWVudGF0aW9uIAkNCisgQ2hhcHRlciAxOg0KX19CYXNpYyBkZWZpbml0aW9uc19fDQorIENoYXB0ZXIgMjogX19TdGF0aXN0aWNhbCBMZWFybmluZ19fDQpTdGF0aXN0aWNhbCBsZWFybmluZyBnb2FsOiBlc3RpbWF0ZSBmLA0KUHJlZGljdGlvbiB2ZXJzdXMgbW9kZWwgaW50ZXJwcmV0YWJpbGl0eSB0cmFkZW9mZiwNCkNvbW1vbiBwcm9ibGVtIGNsYXNzZXM6IHN1cGVydmlzZWQgbGVhcm5pbmcgKGUuZy4gcmVncmVzc2lvbiwgY2xhc3NpZmljYXRpb24pIHZlcnN1cyB1bnN1cGVydmlzZWQgbGVhcm5pbmcgKCBlLmcuIGNsdXN0ZXJpbmcpDQoNCihpKSBEb3dubG9hZCBhbmQgaW5zdGFsbCBSLg0KKGlpKSBEb3dubG9hZCB0aGUgUERGIHRleHRib29rIEFuIEludHJvZHVjdGlvbiB0byBTdGF0aXN0aWNhbCBMZWFybmluZyB3aXRoIEFwcGxpY2F0aW9ucyBpbiBSIFtJU0xSIFNldmVudGggUHJpbnRpbmddKGh0dHBzOi8vZHJpdmUuZ29vZ2xlLmNvbS9vcGVuP2lkPTFLRkFuWDM4N2NaTUhjTERnRm1wRW1QVXJ0QzBHeUFTTykuDQooaWlpKSBJbXBvcnQgbGlicmFyeSAiSVNMUiIgd2l0aGluIFIuICANCihpdikgRG93bmxvYWQgYWxsIGRhdGFzZXRzIHRoZSBJU0xSIFIgcGFja2FnZSB3aXRoIGFsbCBkYXRhc2V0cyBmb3IgdGhlIHRleHQuDQoodikgUmVhZCBJU0xSIGNoYXB0ZXIgMSBhbmQgY2hhcHRlciAyIHRocm91Z2ggc2VjdGlvbiAyLjEuMiAocHAuIDEtMjQpLg0KKHZpKSBPcHRpb25hbGx5IHdhdGNoIHRoZXNlIHN1cHBsZW1lbnRhcnkgdmlkZW9zOg0KDQogICsgSVNMUiBTbGlkZXM6ICBbU3RhdGlzdGljYWwgTGVhcm5pbmddKGh0dHBzOi8vZHJpdmUuZ29vZ2xlLmNvbS9vcGVuP2lkPTF2SkNoQkRyNkFaTjgwU2dJeFh6S0xjZENsaG4wVEtjVCkNCiAgKyBJU0xSIFZpZGVvczogIFtPcGVuaW5nIFJlbWFya3MgYW5kIEV4YW1wbGVzXShodHRwczovL3d3dy55b3V0dWJlLmNvbS93YXRjaD92PTJ3TGZGQl82U0tJKSwgW1N1cGVydmlzZWQgYW5kIFVuc3VwZXJ2aXNlZCBMZWFybmluZ10oaHR0cHM6Ly93d3cueW91dHViZS5jb20vd2F0Y2g/dj1MdmFUb2toWW5EdykNCiANCjIuIDMvMDYJT3JkaW5hcnkgTGVhc3QgU3F1YXJlCQ0KKyBDaGFwdGVyIDM6DQpfX1NpbXBsZSBsaW5lYXIgcmVncmVzc2lvbl9fDQpDb2VmZmljaWVudCBlc3RpbWF0aW9uLA0KQXNzZXNzaW5nIHRoZSBhY2N1cmFjeSBvZiBjb2VmZmljaWVudCBlc3RpbWF0ZXMsDQpBc3Nlc3NpbmcgdGhlIGFjY3VyYWN5IG9mIHRoZSBtb2RlbCwNCk11bHRpcGxlIGxpbmVhciByZWdyZXNzaW9uLA0KUmVsYXRpb25zaGlwcyBiZXR3ZWVuIHJlc3BvbnNlIGFuZCBwcmVkaWN0b3JzLA0KUHJlZGljdG9yIHNlbGVjdGlvbiwNCkFzc2Vzc2luZyBtb2RlbCBmaXQsDQpQcmVkaWN0aW9uIGFuZCBjb25maWRlbmNlIGluIHByZWRpY3Rpb24NCihpKSBSZWFkIGNoYXB0ZXIgMyB0aHJvdWdoIHRoZSBlbmQgb2Ygc2VjdGlvbiAzLjIgKHAuIDgyKS4gIA0KKGlpKSBEbyB0aGUgZ3VpZGVkIGxhYiBvZiBzZWN0aW9uIDMuNiB0aHJvdWdoIDMuNi4zLg0KKGlpaSkgT3B0aW9uYWxseSB3YXRjaCB0aGVzZSBzdXBwbGVtZW50YXJ5IHZpZGVvcy4NCiAgKyBJU0xSIFNsaWRlczogIFtMaW5lYXIgUmVncmVzc2lvbl0oaHR0cHM6Ly9kcml2ZS5nb29nbGUuY29tL29wZW4/aWQ9MUFSN0R0aVhpM2cwcWFySFhWZ0JaczRSREthRlo3bW5fKQ0KICArIElTTFIgVmlkZW9zOiAgW1NpbXBsZSBMaW5lYXIgUmVncmVzc2lvbl0oaHR0cHM6Ly93d3cueW91dHViZS5jb20vd2F0Y2g/dj1Qc0U5VXFvV3RTNCZsaXN0PVBMNS1kYTNxR0I1SUJTU0NQQU5oVGdydzgyd3M3d19vcjkpLCBbSHlwb3RoZXNpcyBUZXN0aW5nXShodHRwczovL3d3dy55b3V0dWJlLmNvbS93YXRjaD92PUo2QWRvaU5VeVdJJmxpc3Q9UEw1LWRhM3FHQjVJQlNTQ1BBTmhUZ3J3ODJ3czd3X29yOSksIFtJbnRlcnByZXRpbmcgUmVncmVzc2lvbiBDb2VmZmljaWVudHNdKGh0dHBzOi8vd3d3LnlvdXR1YmUuY29tL3dhdGNoP3Y9MWhiQ0p5TTljY3MmbGlzdD1QTDUtZGEzcUdCNUlCU1NDUEFOaFRncnc4MndzN3dfb3I5KSwgW0ludGVyYWN0aW9ucyBhbmQgTm9ubGluZWFyaXR5XShodHRwczovL3d3dy55b3V0dWJlLmNvbS93YXRjaD92PUlGelZ4THYwVEtRJmxpc3Q9UEw1LWRhM3FHQjVJQlNTQ1BBTmhUZ3J3ODJ3czd3X29yOSkNCg0KMy4gMy8xMwlTdWJzZXQgU2VsZWN0aW9uCQ0KICArIElTTFIgU2xpZGVzOiBbTW9kZWwgU2VsZWN0aW9uXShodHRwczovL2RyaXZlLmdvb2dsZS5jb20vb3Blbj9pZD0xZGR2M1laSjliZHFjejhwQzRNeU4zTUpqdVVhU3FCWkMpDQogICsgSVNMUiBWaWRlb3M6IFtNb2RlbCBTZWxlY3Rpb24gYW5kIFF1YWxpdGF0aXZlIFByZWRpY3RvcnNdKGh0dHBzOi8vd3d3LnlvdXR1YmUuY29tL3dhdGNoP3Y9M1Q2UlhtSUhiSjQmbGlzdD1QTDUtZGEzcUdCNUlCU1NDUEFOaFRncnc4MndzN3dfb3I5KSwgIFtCZXN0IFN1YnNldCBTZWxlY3Rpb25dKGh0dHBzOi8vd3d3LnlvdXR1YmUuY29tL3dhdGNoP3Y9OTFzaTUybmszTEEpLCBbRm9yd2FyZCBTdGVwd2lzZSBTZWxlY3Rpb25dKGh0dHBzOi8vd3d3LnlvdXR1YmUuY29tL3dhdGNoP3Y9bkxwSmRfaUttckUpLCBbQmFja3dhcmQgU3RlcHdpc2UgU2VsZWN0aW9uXShodHRwczovL3d3dy55b3V0dWJlLmNvbS93YXRjaD92PU5KaE1TcEkyVWo4KSwgW0VzdGltYXRpbmcgVGVzdCBFcnJvciBJXShodHRwczovL3d3dy55b3V0dWJlLmNvbS93YXRjaD92PUxraWZFNDRteUxjKSwgW0VzdGltYXRpbmcgVGVzdCBFcnJvciBJSV0oaHR0cHM6Ly93d3cueW91dHViZS5jb20vd2F0Y2g/dj0zcDlKTmFKQ09iNCkNCiAgDQo0LiAzLzIwCVJlZ3VsYXJpemF0aW9uCQ0KICArIElTTFIgU2xpZGVzOiBbTW9kZWwgU2VsZWN0aW9uXShodHRwczovL2RyaXZlLmdvb2dsZS5jb20vb3Blbj9pZD0xZGR2M1laSjliZHFjejhwQzRNeU4zTUpqdVVhU3FCWkMpDQogICsgSVNMUiBWaWRlb3M6IFtTaHJpbmthZ2UgTWV0aG9kcyBhbmQgUmlkZ2UgUmVncmVzc2lvbl0oaHR0cHM6Ly93d3cueW91dHViZS5jb20vd2F0Y2g/dj1jU0t6cWIwRUtTMCksIFtUaGUgTGFzc29dKGh0dHBzOi8vd3d3LnlvdXR1YmUuY29tL3dhdGNoP3Y9QTVJMUcxTWZVbUEpLCBbVHVuaW5nIFBhcmFtZXRlciBTZWxlY3Rpb25dKGh0dHBzOi8vd3d3LnlvdXR1YmUuY29tL3dhdGNoP3Y9eE1LVlVzdGpYQkUpDQogIA0KNS4gMy8yNwlHZW5lcmFsaXplZCBBZGRpdGl2ZSBNb2RlbAkNCisgQ2hhcHRlciA3OiBfX01vdmluZyBCZXlvbmQgTGluZWFyaXR5X18NClBvbHlub21pYWwgcmVncmVzc2lvbiwNClN0ZXAgYW5kIGJhc2lzIGZ1bmN0aW9ucywNClJlZ3Jlc3Npb24gYW5kIHNtb290aGluZyBzcGxpbmVzLA0KTG9jYWwgcmVncmVzc2lvbnMsDQpHZW5lcmFsaXplZCBBZGRpdGl2ZSBNb2RlbHMgKEdBTXMpDQooaSkgUmVhZCBjaGFwdGVyIDcgYW5kIGNvbXBsZXRlIHRoZSBndWlkZWQgbGFiLg0KKGlpKSBPcHRpb25hbGx5IHdhdGNoIHRoZXNlIHN1cHBsZW1lbnRhcnkgdmlkZW9zLg0KICArIElTTFIgU2xpZGVzOiBbTW92aW5nIEJleW9uZCBMaW5lYXJpdHkNCl0oaHR0cHM6Ly9kcml2ZS5nb29nbGUuY29tL29wZW4/aWQ9MXFvdVFQaDNpa0ctT0pObWl2d3pYdURVV3l4em9ldEtJKQ0KICArIElTTFIgVmlkZW9zOiAgW1BvbHlub21pYWwgUmVncmVzc2lvbiBhbmQgU3RlcCBGdW5jdGlvbnNdKGh0dHBzOi8vd3d3LnlvdXR1YmUuY29tL3dhdGNoP3Y9Z3RYUVhBN3FGM2MmbGlzdD1QTDUtZGEzcUdCNUlCbjg0ZnZoaC11Mk1VODBqdm84T29SKSwgW1BpZWNld2lzZSBQb2x5bm9taWFscyBhbmQgU3BsaW5lc10oaHR0cHM6Ly93d3cueW91dHViZS5jb20vd2F0Y2g/dj03WklxelROQjhsayZsaXN0PVBMNS1kYTNxR0I1SUJuODRmdmhoLXUyTVU4MGp2bzhPb1IpLCBbU21vb3RoaW5nIFNwbGluZXNdKGh0dHBzOi8vd3d3LnlvdXR1YmUuY29tL3dhdGNoP3Y9bXhYSEphMURzV1EmbGlzdD1QTDUtZGEzcUdCNUlCbjg0ZnZoaC11Mk1VODBqdm84T29SKSwgW0xvY2FsIFJlZ3Jlc3Npb24gYW5kIEdlbmVyYWxpemVkIEFkZGl0aXZlIE1vZGVsc10oaHR0cHM6Ly93d3cueW91dHViZS5jb20vd2F0Y2g/dj1OMmhCWHFQaWVnUSZsaXN0PVBMNS1kYTNxR0I1SUJuODRmdmhoLXUyTVU4MGp2bzhPb1IpDQogIA0KNi4gNC8wMwlEaXNjcmltaW5hbnQgQW5hbHlzaXMJDQorIENoYXB0ZXIgNDogX19DbGFzc2lmaWNhdGlvbl9fDQpMaW5lYXIgZGlzY3JpbWluYW50IGFuYWx5c2lzIChMREEpDQpRdWFkcmF0aWMgZGlzY3JpbWluYW50IGFuYWx5c2lzIChRREEpDQooaSkgUmVhZCBjaGFwdGVyIDQgYW5kIGNvbXBsZXRlIHRoZSBndWlkZWQgbGFiLg0KKGlpKSBPcHRpb25hbGx5IHdhdGNoIHRoZXNlIHN1cHBsZW1lbnRhcnkgdmlkZW9zLg0KICArIElTTFIgU2xpZGVzOiBbQ2xhc3NpZmljYXRpb25dKGh0dHBzOi8vZHJpdmUuZ29vZ2xlLmNvbS9vcGVuP2lkPTFPU1M5bmFxaDZqR1BSN1hjVGI0bzQzUUpTelpKaXNsbikNCiAgKyBJU0xSIFZpZGVvczogW0ludHJvZHVjdGlvbiB0byBDbGFzc2lmaWNhdGlvbl0oaHR0cHM6Ly93d3cueW91dHViZS5jb20vd2F0Y2g/dj1zcXEyMS1WSWExYyksW0xpbmVhciBEaXNjcmltaW5hbnQgQW5hbHlzaXMgYW5kIEJheWVzIFRoZW9yZW1dKGh0dHBzOi8vd3d3LnlvdXR1YmUuY29tL3dhdGNoP3Y9UmZyR2lHMUhtM00pLCBbVW5pdmFyaWF0ZSBMaW5lYXIgRGlzY3JpbWluYW50IEFuYWx5c2lzXShodHRwczovL3d3dy55b3V0dWJlLmNvbS93YXRjaD92PVFHMHBWSlhUNkVVKSwgW011bHRpdmFyaWF0ZSBMaW5lYXIgRGlzY3JpbWluYW50IEFuYWx5c2lzXShodHRwczovL3d3dy55b3V0dWJlLmNvbS93YXRjaD92PVg0VkRaRHAydnF3KSwgW1F1YWRyYXRpYyBEaXNjcmltaW5hbnQgQW5hbHlzaXMgYW5kIE5haXZlIEJheWVzXShodHRwczovL3d3dy55b3V0dWJlLmNvbS93YXRjaD92PTZGaU5HVFlBT0FBKQ0KIA0KNy4gNC8xMAlMb2dpc3RpYyBSZWdyZXNzaW9uCQ0KKyBDaGFwdGVyIDQ6IF9fQ2xhc3NpZmljYXRpb25fXw0KTG9naXN0aWMgcmVncmVzc2lvbiBhbmQgbXVsdGlub21pYWwgbG9naXN0aWMgcmVncmVzc2lvbg0KKGkpIFJlYWQgY2hhcHRlciA0IGFuZCBjb21wbGV0ZSB0aGUgZ3VpZGVkIGxhYi4NCihpaSkgT3B0aW9uYWxseSB3YXRjaCB0aGVzZSBzdXBwbGVtZW50YXJ5IHZpZGVvcy4NCiAgKyBJU0xSIFNsaWRlczogW0NsYXNzaWZpY2F0aW9uXShodHRwczovL2RyaXZlLmdvb2dsZS5jb20vb3Blbj9pZD0xT1NTOW5hcWg2akdQUjdYY1RiNG80M1FKU3paSmlzbG4pDQogICsgSVNMUiBWaWRlb3M6IFtMb2dpc3RpYyBSZWdyZXNzaW9uXShodHRwczovL3d3dy55b3V0dWJlLmNvbS93YXRjaD92PTMxUTVGR1JueHQ0KSwgW011bHRpcGxlIExvZ2lzdGljIFJlZ3Jlc3Npb25dKGh0dHBzOi8vd3d3LnlvdXR1YmUuY29tL3dhdGNoP3Y9TXBYOHJWdl91NEUpDQoNCjguIDQvMTcJQWNjdXJhY3ksIFByZWNpc2lvbiwgYW5kIFJlY2FsbAkNCisgQ2hhcHRlciA1OiBfX1ZhbGlkYXRpb25fXw0KQ3Jvc3MtVmFsaWRhdGlvbiwNClZhbGlkYXRpb24gc2V0IG1ldGhvZCwNCkxlYXZlLW9uZS1vdXQgY3Jvc3MgdmFsaWRhdGlvbiAoTE9PQ1YpLA0Kay1Gb2xkIGNyb3NzIHZhbGlkYXRpb24gYW5kIHRoZSBiaWFzLXZhcmlhbmNlIHRyYWRlLW9mZiwNClRoZSBCb290c3RyYXANCihpKSBSZWFkIGNoYXB0ZXIgNSBhbmQgY29tcGxldGUgdGhlIGd1aWRlZCBsYWIuDQooaWkpIE9wdGlvbmFsbHkgd2F0Y2ggdGhlc2Ugc3VwcGxlbWVudGFyeSB2aWRlb3MuDQogICsgSVNMUiBTbGlkZXM6IFtDcm9zcy12YWxpZGF0aW9uIGFuZCB0aGUgQm9vdHN0cmFwXShodHRwczovL2RyaXZlLmdvb2dsZS5jb20vb3Blbj9pZD0xRWEzXzVlTGVYNDg2RktFbmJqSVlXeVo5MmRTXy02cE4pDQogICsgSVNMUiBWaWRlb3M6IFtWYWxpZGF0aW9uIFNldCBBcHByb2FjaF0oaHR0cHM6Ly93d3cueW91dHViZS5jb20vd2F0Y2g/dj1fMmlqNmVhYVNsMCksIFtrLWZvbGQgQ3Jvc3MtVmFsaWRhdGlvbl0oaHR0cHM6Ly93d3cueW91dHViZS5jb20vd2F0Y2g/dj1uWkFNNU9Ycmt0WSksIFtDcm9zcy1WYWxpZGF0aW9uOiBUaGUgUmlnaHQgYW5kIFdyb25nIFdheXNdKGh0dHBzOi8vd3d3LnlvdXR1YmUuY29tL3dhdGNoP3Y9UzA2SnBWb05hQTApDQogIA0KOS4gNC8yNAlTdXBwb3J0IFZlY3RvciBNYWNoaW5lCSAgICAgICAgIA0KICArIElTTFIgU2xpZGVzOiBbU3VwcG9ydCBWZWN0b3IgTWFjaGluZXMNCl0oaHR0cHM6Ly9kcml2ZS5nb29nbGUuY29tL29wZW4/aWQ9MXVzME1BV0d4SmdRZElRRWJoR2pBZ1NNLTk4NnRtWlZhKQ0KICArIElTTFIgVmlkZW9zOiBbU3VwcG9ydCBWZWN0b3IgTWFjaGluZXNdKGh0dHBzOi8veW91dHUuYmUvTjhPUGtQNkJ5SEkpICAgIA0KICANCjEwLiA1LzAxCVByaW5jaXBhbCBDb21wb25lbnQgQW5hbHlzaXMJICANCiAgKyBJU0xSIFNsaWRlczogW1Vuc3VwZXJ2aXNlZCBMZWFybmluZ10oaHR0cHM6Ly9kcml2ZS5nb29nbGUuY29tL29wZW4/aWQ9MVllUkpqYThiZUxGZGttRTF3NWU1a1BUekg2VUhpVUU4KQ0KICArIElTTFIgVmlkZW9zOiBbVW5zdXBlcnZpc2VkIExlYXJuaW5nIGFuZCBQcmluY2lwYWwgQ29tcG9uZW50cyBBbmFseXNpc10oaHR0cHM6Ly93d3cueW91dHViZS5jb20vd2F0Y2g/dj1pcHl4U1lYZ3pqUSksIFtFeHBsb3JpbmcgUHJpbmNpcGFsIENvbXBvbmVudHMgQW5hbHlzaXMgYW5kIFByb3BvcnRpb24gb2YgVmFyaWFuY2UgRXhwbGFpbmVkXShodHRwczovL3d3dy55b3V0dWJlLmNvbS93YXRjaD92PWRidVNHV0NnZHp3KSANCiAgDQoxMS4gNS8wOAlLLW1lYW5zIENsdXN0ZXJpbmcJDQogICsgSVNMUiBTbGlkZXM6IFtodHRwczovL2RyaXZlLmdvb2dsZS5jb20vb3Blbj9pZD0xWWVSSmphOGJlTEZka21FMXc1ZTVrUFR6SDZVSGlVRThdDQogICsgSVNMUiBWaWRlb3M6IFtLLW1lYW5zIENsdXN0ZXJpbmddKGh0dHBzOi8vd3d3LnlvdXR1YmUuY29tL3dhdGNoP3Y9YUl5YnVOdDlwczQpICAgICAgICAgICAgICANCiAgDQoxMi4gNS8xNQlIaWVyYXJjaGljYWwgQ2x1c3RlcmluZwkNCiAgKyBJU0xSIFNsaWRlczogW2h0dHBzOi8vZHJpdmUuZ29vZ2xlLmNvbS9vcGVuP2lkPTFZZVJKamE4YmVMRmRrbUUxdzVlNWtQVHpINlVIaVVFOF0NCiAgKyBJU0xSIFZpZGVvczogW0hpZXJhcmNoaWNhbCBDbHVzdGVyaW5nXShodHRwczovL3d3dy55b3V0dWJlLmNvbS93YXRjaD92PVR1dWM5WTA2dEFjKQ0KICANCjEzLiA1LzIyICBObyBjbGFzcy4gCUJ1ZGRoYSdzIGJpcnRoZGF5Lg0KDQoNCjE0LiA1LzI5CUNsYXNzaWZpY2F0aW9uIGFuZCBSZWdyZXNzaW9uIFRyZWUJICANCiAgKyBJU0xSIFNsaWRlczogW1RyZWUtYmFzZWQgTWV0aG9kcw0KXShodHRwczovL2RyaXZlLmdvb2dsZS5jb20vb3Blbj9pZD0xeVZrLWtSNWg3NVRHZEotTkJFZ05DNDJTQ195ZU5MNkQpDQogICsgSVNMUiBWaWRlb3M6IFtEZWNpc2lvbiBUcmVlc10oaHR0cHM6Ly93d3cueW91dHViZS5jb20vd2F0Y2g/dj02RU5UYkszeVFVUSksIFtQcnVuaW5nIGEgRGVjaXNpb24gVHJlZV0oaHR0cHM6Ly93d3cueW91dHViZS5jb20vd2F0Y2g/dj1HZlBSN1hoZG9rYyksIFtDbGFzc2lmaWNhdGlvbiBUcmVlcyBhbmQgQ29tcGFyaXNvbiB3aXRoIExpbmVhciBNb2RlbHNdKGh0dHBzOi8vd3d3LnlvdXR1YmUuY29tL3dhdGNoP3Y9aFBFSm9JVEJiUTQpDQogIA0KICANCjE1LiA2LzA1CUJhZ2dpbmcgYW5kIEJvb3N0aW5nCSAgICAgICAgICAgICANCiAgKyBJU0xSIFNsaWRlczogW1RyZWUtYmFzZWQgTWV0aG9kcw0KXShodHRwczovL2RyaXZlLmdvb2dsZS5jb20vb3Blbj9pZD0xeVZrLWtSNWg3NVRHZEotTkJFZ05DNDJTQ195ZU5MNkQpDQogICsgSVNMUiBWaWRlb3M6IFtCb290c3RyYXAgQWdncmVnYXRpb24gKEJhZ2dpbmcpIGFuZCBSYW5kb20gRm9yZXN0c10oaHR0cHM6Ly93d3cueW91dHViZS5jb20vd2F0Y2g/dj1scV94ekJSSVdtNCksIFtCb29zdGluZyBhbmQgVmFyaWFibGUgSW1wb3J0YW5jZV0oaHR0cHM6Ly93d3cueW91dHViZS5jb20vd2F0Y2g/dj1VM01kQk55c2s5dykNCg0KICANCjE2LiA2LzEyCVJldmlldyBhbmQgRGlzY3Vzc2lvbgkgICAgICAgICAgICAgIA0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgDQotLS0NCg0KLS0tDQojIyMgQ291cnNlIEluZm9ybWF0aW9uDQoNCkNvdXJzZSBDb2RlOiBCQVQ1MTMwMQkNCg0KSW5zdHJ1Y3RvcjoJSmVvbmdoYW4gSG9uZw0KDQpDb3Vyc2UgVGl0bGU6CVN0YXRpc3RpY2FsIExlYXJuaW5nCQ0KDQpPZmZpY2U6CUJBQjExNCA3MDYtMQ0KDQpZZWFyL1NlbWVzdGVyOiAyMDE4L1NwcmluZwkNCg0KVGVsZXBob25lOiAzMDQ0DQoNCkUtbWFpbDoJamVvbmdoYW4uaG9uZ0B1bmlzdC5hYy5rcg0KDQpDbGFzc3Jvb206IENhbXB1cy0xMDgNCg0KQ2xhc3MgVGltZTogVHVlIDE5OjAwLTIxOjMwIAkNCg0KT2ZmaWNlIEhvdXJzOglUdWUgMjE6MzAgfjIyOjMwDQoNCi0tLQ0KDQotLS0NCiMjIyBMZWFybmluZyBHb2FsIAkJCQkJDQpVTklTVCBTY2hvb2wgb2YgQnVzaW5lc3MgQWRtaW5pc3RyYXRpb24gKFNCQSkgaXMgY3VycmVudGx5IHByZXBhcmluZyBmb3IgYWNoaWV2aW5nIEludGVybmF0aW9uYWwgQWNjcmVkaXRhdGlvbiBieSB0aGUgQUFDU0IgSW50ZXJuYXRpb25hbCAtIHRoZSBBc3NvY2lhdGlvbiB0byBBZHZhbmNlIENvbGxlZ2lhdGUgU2Nob29scyBvZiBCdXNpbmVzcywgd2hpY2ggcmVwcmVzZW50cyB0aGUgaGlnaGVzdCBzdGFuZGFyZCBvZiBhY2hpZXZlbWVudCBmb3IgYnVzaW5lc3Mgc2Nob29scyB3b3JsZHdpZGUuIExlc3MgdGhhbiA1JSBvZiB0aGUgd29ybGQncyAxMywwMDAgYnVzaW5lc3MgcHJvZ3JhbXMgaGF2ZSBlYXJuZWQgdGhpcyBkaXN0aW5jdGlvbi4gQUFDU0IgYWNjcmVkaXRhdGlvbiBtZWFucyBzdHVkZW50cyB3aWxsIHJlY2VpdmUgcmVsZXZhbnQga25vd2xlZGdlLCBjaGFsbGVuZ2luZyBjb3Vyc2VzLCB1c2VmdWwgc2tpbGxzLCBlYXNpZXIgYWNjZXNzIHRvIGVtcGxveWVycywgYW5kIGEgd2VhbHRoIG9mIHJlc291cmNlcyB0byBoZWxwIHRoZW0gc3VjY2VlZC4gDQpPbmUgb2YgdGhlIG1haW4gc3RlcHMgdG93YXJkIGFjY3JlZGl0YXRpb24gaXMgQXNzdXJhbmNlIG9mIExlYXJuaW5nLCB3aGljaCDigJxyZWZlcnMgdG8gcHJvY2Vzc2VzIGZvciBkZW1vbnN0cmF0aW5nIHRoYXQgc3R1ZGVudHMgYWNoaWV2ZSBsZWFybmluZyBleHBlY3RhdGlvbnMgZm9yIHRoZSBwcm9ncmFtcyBpbiB3aGljaCB0aGV5IHBhcnRpY2lwYXRlLiBBc3N1cmFuY2Ugb2YgbGVhcm5pbmcgYWxzbyBhc3Npc3RzIHRoZSBzY2hvb2wgYW5kIGZhY3VsdHkgbWVtYmVycyB0byBpbXByb3ZlIHByb2dyYW1zIGFuZCBjb3Vyc2VzLiBCeSBtZWFzdXJpbmcgbGVhcm5pbmcsIHRoZSBzY2hvb2wgY2FuIGV2YWx1YXRlIGl0cyBzdHVkZW50c+KAmSBzdWNjZXNzIGF0IGFjaGlldmluZyBsZWFybmluZyBnb2FscywgdXNlIHRoZSBtZWFzdXJlcyB0byBwbGFuIGltcHJvdmVtZW50IGVmZm9ydHMsIGFuZCAoZGVwZW5kaW5nIG9uIHRoZSB0eXBlIG9mIG1lYXN1cmVzKSBwcm92aWRlIGZlZWRiYWNrIGFuZCBndWlkYW5jZSBmb3IgaW5kaXZpZHVhbCBzdHVkZW50c+KAnSAoRWxpZ2liaWxpdHkgUHJvY2VkdXJlcyBhbmQgQWNjcmVkaXRhdGlvbiBTdGFuZGFyZHMgZm9yIEJ1c2luZXNzIEFjY3JlZGl0YXRpb24sIEFBQ1NCIEludGVybmF0aW9uYWwgLSB0aGUgQXNzb2NpYXRpb24gdG8gQWR2YW5jZSBDb2xsZWdpYXRlIFNjaG9vbHMgb2YgQnVzaW5lc3MpDQpBY2NvcmRpbmdseSwgdGhlIEJ1c2luZXNzIENvbW11bmljYXRpb24gY291cnNlIGhhcyBiZWVuIGNob3NlbiBmb3IgdGhlIGFzc2Vzc21lbnQgcHVycG9zZXMgaW4gdGhlIDIwMTYgc3ByaW5nIHNlbWVzdGVyLiBUaGUgc3R1ZGVudHMgd2hvIHRha2UgdGhpcyBjb3Vyc2Ugd2lsbCBiZSBhc3Nlc3NlZCBhY2NvcmRpbmcgdG8gdGhlIGZvbGxvd2luZyBsZWFybmluZyBnb2FsIGRldmVsb3BlZCBieSB0aGUgU2Nob29sOg0KDQoqIEdMRy4zIEFibGUgdG8gZGV2ZWxvcCBjcmVhdGl2ZSBhcHByb2FjaGVzIGluIHJlc2VhcmNoIGFuZCBzb2x2aW5nIHRoZW9yZXRpY2FsIGFuZCBwcmFjdGljYWwgcHJvYmxlbXMuICBUaGV5IHdpbGwgYmUNCg0KKiAzYiBBYmxlIHRvIGRldmVsb3AgYSBjcml0aWNhbCBhbmQgcmVmbGVjdGl2ZSBhcHByb2FjaCB0byByZXNlYXJjaCBhbmQgYXBwbGljYXRpb24gb2YgbWFuYWdlbWVudCB0aGVvcnkgYW5kIHByYWN0aWNlLiANCg0KKiBHTEcgNS4gT3VyIGdyYWR1YXRlcyB3aWxsIGJlIGFibGUgdG8gZGVtb25zdHJhdGUgdGhlIGV4dGVuc2l2ZSBrbm93bGVkZ2UgaW4gdGhlIHBhcnRpY3VsYXIgYXJlYSBvZiBpbnRlcmVzdC4gIFRoZXkgd2lsbCBiZQ0KDQoqIDVhIEFibGUgdG8gdW5kZXJzdGFuZCB0aGUgbWFpbiByZXNlYXJjaCBzdHJlYW0gaW4gdGhlIHBhcnRpY3VsYXIgYXJlYSBvZiBpbnRlcmVzdA0KDQotLS0NCg0KLS0tDQoNCg0KYGBge3IgZ3JhcGhpY3N9DQpwYXIobWFyID0gYyg0LCA0LCAuMSwgLjEpKQ0Kd2l0aChtdGNhcnMsIHsNCnBsb3QobXBnfmhwLCBwY2g9MjAsIGNvbD0nZGFya2dyYXknKQ0KbGluZXMobG93ZXNzKGhwLCBtcGcpKQ0KfSkNCmBgYA0KDQpgYGB7cn0NCnBsb3QoY2FycykNCmBgYA0KDQpBZGQgYSBuZXcgY2h1bmsgYnkgY2xpY2tpbmcgdGhlICpJbnNlcnQgQ2h1bmsqIGJ1dHRvbiBvbiB0aGUgdG9vbGJhciBvciBieSBwcmVzc2luZyAqQ3RybCtBbHQrSSouDQoNCldoZW4geW91IHNhdmUgdGhlIG5vdGVib29rLCBhbiBIVE1MIGZpbGUgY29udGFpbmluZyB0aGUgY29kZSBhbmQgb3V0cHV0IHdpbGwgYmUgc2F2ZWQgYWxvbmdzaWRlIGl0IChjbGljayB0aGUgKlByZXZpZXcqIGJ1dHRvbiBvciBwcmVzcyAqQ3RybCtTaGlmdCtLKiB0byBwcmV2aWV3IHRoZSBIVE1MIGZpbGUpLg0KDQpUaGUgcHJldmlldyBzaG93cyB5b3UgYSByZW5kZXJlZCBIVE1MIGNvcHkgb2YgdGhlIGNvbnRlbnRzIG9mIHRoZSBlZGl0b3IuIENvbnNlcXVlbnRseSwgdW5saWtlICpLbml0KiwgKlByZXZpZXcqIGRvZXMgbm90IHJ1biBhbnkgUiBjb2RlIGNodW5rcy4gSW5zdGVhZCwgdGhlIG91dHB1dCBvZiB0aGUgY2h1bmsgd2hlbiBpdCB3YXMgbGFzdCBydW4gaW4gdGhlIGVkaXRvciBpcyBkaXNwbGF5ZWQuDQo=