PCFkb2N0eXBlIGh0bWwgcHVibGljICItLy93M2MvL2R0ZCBodG1sIDQuMCB0cmFuc2l0aW9uYWwvL2VuIj4NCjxodG1sPg0KPGhlYWQ+DQogICA8bWV0YSBodHRwLWVxdWl2PSJDb250ZW50LVR5cGUiIGNvbnRlbnQ9InRleHQvaHRtbDsgY2hhcnNldD1pc28tODg1OS0xIj4NCiAgIDxtZXRhIG5hbWU9IkdFTkVSQVRPUiIgY29udGVudD0iTW96aWxsYS80LjcgW2VuXSAoV2luTlQ7IEkpIFtOZXRzY2FwZV0iPg0KICAgPG1ldGEgbmFtZT0iQXV0aG9yIiBjb250ZW50PSJJQk0iPg0KICAgPHRpdGxlPkVjbGlwc2UgUGxhdGZvcm0gQnVpbGQgTm90ZXMgLSBTV1Q8L3RpdGxlPg0KPC9oZWFkPg0KPGJvZHk+DQoNCjxoMT4NCkVjbGlwc2UgUGxhdGZvcm0gQnVpbGQgTm90ZXM8YnI+DQpTV1Q8L2gxPg0KU1dUIEJ1aWxkIDIuMSAwMDggLSBUdWVzZGF5IFNlcHRlbWJlciAxNywgMjAwMg0KDQo8aDI+DQo8YSBOQU1FPSJQcm9ibGVtIHJlcG9ydHMgZml4ZWQiPjwvYT5Qcm9ibGVtIHJlcG9ydHMgZml4ZWQ8L2gyPg0KPGJsb2NrcXVvdGU+DQo0NjM3OiBUcmVlRWRpdG9yIGV4YW1wbGUgZG9lcyBub3Qgc2hvdyBob3cgdG8gdXNlIGRvdWJsZSBjbGljayAoMUdDUDZPSCkNCjxicj40NjU2OiBQb3AtdXAgbWVudSBub3Qgc2hvd2luZyBmb3IgQ29tcG9zaXRlICgxR0VOWU0wKSAgDQo8YnI+NDcxMDogUmVtYWluaW5nIEphdmFkb2MgcHJvYmxlbXMgKDFHRjA4OFcpICANCjxicj40NzMwOiBTdXBwb3J0IGZvciBsZXNzdGlmIG9uIExpbnV4ICANCjxicj40NzMzOiBJc3N1ZXMgd2l0aCBXaW4zMiBHREkgc2V0QmtNb2RlKCksIGFuZCBzaW1pbGFyIHRoaW5ncyBpbiBNb3RpZiAoMUdGUEdLMykNCjxicj40Nzk2OiBEQ1I6IGtleWJvYXJkIHN1cHBvcnQgZm9yIG1vdmUvcmVzaXplIChhY2Nlc3NpYmlsaXR5IGlzc3VlKSAgDQo8YnI+NTkwMDogQ2hlY2tib3hUYWJsZVZpZXdlciBkb2VzIGRpc2FibGUgY29ycmVjdGx5ICANCjxicj4xMDUzMjogRENSOiBUYWJsZS5zZXRTZWxlY3Rpb24oaW50LCBpbnQpIC0tIG9yZGVyIG1hdHRlcnMgIA0KPGJyPjEyMDQ4OiBOUEUgZXhpdGluZyB3b3Jrc3BhY2UgIA0KPGJyPjE2NzAwOiBDb29sYmFyIHRhYiBvcmRlciBpcyBiYWNrd2FyZHMgIA0KPGJyPjE3NDk0OiBWZXJvbmlrYSBuZWVkcyB0byBjaGVjayBoZXIgamF2YWRvYyAgDQo8YnI+MTkyNTY6IFNJUCBldmVudCAgDQo8YnI+MTk3MzY6IFRvb2x0aXBzIGZvciBsb25nIGVudHJpZXMgaW4gY29kZSBhc3Npc3QgcG9wIGJlaGluZCBjb2RlIGFzc2lzdA0KPGJyPjIxMTI2OiBQcmludCBEaWFsb2cgSXMgTm90IE1vZGFsLCBSZXN1bHRpbmcgaW4gVW5wcmVkaWN0YWJsZSBXb3JrYmVuY2ggQmVoYXZpb3INCjxicj4yMTYyMDogRm9udERhdGEuc2V0TG9jYWxlKCkgY3Jhc2hlcyB3b3JrYmVuY2ggIA0KPGJyPjIyMTg5OiBXaW4zMiBHREkgUmVzb3VyY2UgTGVhayBpbiBXcmFwcGVkQ29udGVudC5qYXZhICANCjxicj4yMjIxMDogUGhvdG9uOlJlbW92aW5nIGl0ZW0gZnJvbSBDb21ibyBkb2VzIG5vdCByZW1vdmUgdGhlIHRleHQoQkJBV1QpDQo8YnI+MjIzNjQ6IEluY29ycmVjdCBoZWlnaHQgb2Ygd2lkZ2V0IGluIFRleHRWaWV3ZXIgIA0KPGJyPjIyNDkwOiBCYWNrZ3JvdW5kIGNvbG9yIG9mIEdyYXBoaWNhbCBFZGl0b3JzIGlzIGFsd2F5cyBibGFjay4gIA0KPGJyPjIyNTM0OiBObyB3YXkgdG8gdHVybiBib3JkZXIgb2ZmIGZvciBsaW51eCB0ZXh0IHdpZGdldCAgDQo8YnI+MjI1NjQ6IENhbm5vdCBkcmF3IHRyYW5zcGFyZW50IFBORyBmaWxlcyBwcm9wZXJseSAgDQo8YnI+MjI1Nzc6IExpc3Quc2V0U2VsZWN0aW9uKFN0cmluZ1tdKSBpbmZpbml0ZSBsb29wICANCjxicj4yMjgzOTogV2hlbiBzd3Qgd2luZG93IGluIGZvY3VzIHBhbGV0dGVzIG9mIG90aGVyIHdpbmRvd3MgaG9zZWQsIGFuZCB2aXNlIHZlcnNhDQo8YnI+MjI4NjI6IFN0eWxlZFRleHQgLSBUYWIgZG9lcyBub3QgdGFiIG91dCBvZiBub24tZWRpdGFibGUgIA0KPGJyPjIyOTI2OiBDbGlwYm9hcmQgY29weS9wYXN0ZSBpcyBjdXQvcGFzdGUgb24gV2luZG93cyA5OCAgDQo8L2Jsb2NrcXVvdGU+DQoNCjxoMT4NCkVjbGlwc2UgUGxhdGZvcm0gQnVpbGQgTm90ZXM8YnI+DQpTV1Q8L2gxPg0KU1dUIEJ1aWxkIDIuMSAwMDcgLSBUdWVzZGF5IFNlcHRlbWJlciAxMCwgMjAwMg0KDQo8aDI+DQo8YSBOQU1FPSJQcm9ibGVtIHJlcG9ydHMgZml4ZWQiPjwvYT5Qcm9ibGVtIHJlcG9ydHMgZml4ZWQ8L2gyPg0KPGJsb2NrcXVvdGU+DQoxMDA1MDogU3R5bGVkVGV4dCAtIENoYW5nZSBzZWxlY3Rpb24gY29sb3Igd2hlbiBjaGFuZ2luZyBiYWNrZ3JvdW5kIGNvbG9yDQo8YnI+MTQ2Mzc6IFN0eWxlZFRleHQgLSBjb3B5LWZyb20gdGV4dCBlZGl0IGZlYXR1cmUgIA0KPGJyPjE2MDA5OiBFY2xpcHNlJ3MgdG9vbGJhciBidXR0b25zJyBpY29uIGluIGJsYWNrIGFuZCB1cHNpZGUgZG93biAgDQo8YnI+MTc3OTM6IE1vdGlmIEZpbGVEaWFsb2cgb2Z0ZW4gZG9lcyBub3QgdXNlIHJlYXNvbmFibGUgZGVmYXVsdCBkaXJlY3RvcnkgIA0KPGJyPjIwMTc5OiBDb29sYmFyIGl0ZW0gY2xpcHBlZCBvbiBib3R0b20gZWRnZSB3aXRoIFNXVC5CT1JERVIgc3R5bGUgIA0KPGJyPjIxMTg1OiBHVEs6IExhYmVsIHBvc2l0aW9uaW5nIGluY29ycmVjdCB3aGVuIHN0eWxlIGJpdCB1c2VkIGFuZCBib3VuZHMgc2V0KEJCQVdUKQ0KPGJyPjIyMDc5OiBTdHlsZWRUZXh0IC0gQmlkaVV0aWwuaXNCaWRpUGxhdGZvcm0gcmV0dXJucyB0cnVlIHdoZW4gbm90IHJ1bm5pbmcgd2l0aCBiaWRpIGxvY2FsZQ0KPGJyPjIyMTE0OiAqIGtleSBleHBhbmRzIFRhYmxlVHJlZSBidXQgZG9lcyBub3Qgc2VuZCBTV1QuRXhwYW5kIGV2ZW50ICANCjxicj4yMjExNTogTWVzc2FnZURpYWxvZyBkb2VzIG5vdCB3cmFwIG1lc3NhZ2UgIA0KPGJyPjIyMTU4OiBnZXRJdGVtKCkgY3Jhc2hlcyBlY2xpcHNlIGNhbGxlZCB3aXRoIGluZGV4IDAgIA0KPGJyPjIyNjQ3OiBWYXJpYW50IGNsYXNzIGluY29ycmVjdGx5IG1hcnNoYWxzIFZUX0JPT0wgdmFsdWVzICANCjxicj4yMjc0NjogVGV4dCBjdXQgb2ZmIGluIEdUSyBpbiBUaXRsZUFyZURpYWxvZyAgDQo8YnI+MjI4Njg6IEVjbGlwc2UgaGFuZ3Mgd2hpbGUgY3JlYXRpbmcgYSBzaGVsbCBmcm9tIENvbnRyb2xFeGFtcGxlICANCjxicj4yMjg3NDogMjEwNDogQ29udmVydGVyIGNvbnRhaW5zIHJlZmVyZW5jZXMgdG8gQ29udmVydGVyLmNsYXNzICANCjxicj4yMjkxNjogQ0NvbWJvIG5vdCBkcm9wcGluZyBkb3duIGxpc3QgcHJvcGVybHkgIA0KPGJyPjIyOTE4OiBUYWJsZS5nZXRJdGVtKFBvaW50KSB0aHJvd3MgQXJyYXlJbmRleE91dE9mQm91bmRzICANCjxicj4yMjk1OTogRHJhZ2dpbmcgb3ZlciBtdWx0aXBsZSBzdGFja2VkIHRyZWVzIHVzZXMgaW52aXNpYmxlIHRyZWUgZm9yIGRyb3AgdGFyZ2V0DQo8YnI+MjI5Nzg6IE1vdGlmIEZpbGVEaWFsb2cgaWdub3JlcyBTV1QuTVVMVEkgYml0ICANCjxicj4yMzAwMzogWGNvcHlwbGFuZSByZXF1aXJlcyAxMSBhcmdzIGJ1dCBIUC1VWCBKUkUgY2FuIG9ubHkgaGFuZGxlIDEwICANCjxicj4yMzAyODogRUM6IFRhYiB1bi1pbmRlbnQgZG9lcyBub3Qgd29yayAgDQo8YnI+MjMwNjE6ICdCYWNrJyBrZXkgZG9lcyBub3QgZGVsZXRlIGNoYXJhY3RlciBvbiBTbWFydHBob25lIDIwMDIgIA0KPGJyPjIzMTc4OiBFY2xpcHNlIEZhaWxzIHRvIFN0YXJ0IEZpcnN0IFRpbWUgIA0KPGJyPjIzMjg1OiBMaW51eCBNb3RpZiBoYXMgYmVjb21lIGV4dHJlbWVseSBzbG93ICANCjwvYmxvY2txdW90ZT4NCg0KPGgxPg0KRWNsaXBzZSBQbGF0Zm9ybSBCdWlsZCBOb3Rlczxicj4NClNXVDwvaDE+DQpTV1QgQnVpbGQgMi4xIDAwNiAtIFR1ZXNkYXkgQXVndXN0IDI3LCAyMDAyDQoNCjxoMj4NCjxhIE5BTUU9IlByb2JsZW0gcmVwb3J0cyBmaXhlZCI+PC9hPlByb2JsZW0gcmVwb3J0cyBmaXhlZDwvaDI+DQo8YmxvY2txdW90ZT4NCjU2Nzg6IFRWVDogVW5hYmxlIHRvIG9wZW4gRmlsdGVyIGRpYWxvZyBvbiBXaW45OCBpZiBhbm90aGVyIHZpZXcgaXMgdW5kb2NrZWQgKGZyZWUgZmxvYXRpbmcpDQo8YnI+MTI4Nzg6IENvbWJvIHNldEl0ZW1zIHJlbW92ZXMgc2V0VGV4dCAgDQo8YnI+MTMwMjQ6IFR3byB0b29sdGlwcyBkaXNwbGF5ZWQgb24gdHJlZSAgDQo8YnI+MTQ5MjM6IFNob3cgVGV4dCBIb3ZlciB0b29sYmFyIGl0ZW0gaW4gd3JvbmcgcGxhY2UgIA0KPGJyPjE2MzMzOiBBY2Nlc3NpYmlsaXR5IC0gdGFiIGtleSBpbiBkaWFsb2cgYm94ZXMgIA0KPGJyPjIwMzIxOiBNdWx0aXBsZSBvcGVuZWQgQXBwbGljYXRpb25XaW5kb3dzIHdpdGggc3RhdHVzbGluZXMgc2hvdyBpbmNvcnJlY3QgZGlzcGxheS9ldmVudCBoYW5kbGluZw0KPGJyPjIyMjMxOiBQcmVzc2luZyBFTlRFUiBpbiBhIHRleHQgZmllbGQgbm8gbG9uZ2VyIHBlcmZvcm1zIE9LIGluIGRpYWxvZ3MNCjxicj4yMjY1OTogRnVuY3Rpb24ga2V5IGV2ZW50cyBhcmUgb2Z0ZW4gbG9zdA0KPGJyPjIyNjYxOiBTdHlsZWRUZXh0IC0gU2hpZnQrQWx0KzxjaGFyYWN0ZXI+IGluc2VydHMgY2hhcmFjdGVyICANCjxicj4yMjcyMTogQ2Fubm90IHVzZSBrZXlib2FyZCB0byB0b2dnbGUgY2hlY2tib3hlcyAgDQo8YnI+MjI3Mzc6IE1vdXNlIENhcHR1cmUgb24gTW90aWYgY2F1c2VzIENvbnRleHQgTWVudSBub3QgdG8gd29yayAgDQo8YnI+MjI4MjU6IENvbnNlY3V0aXZlIHZlcnRpY2FsIGN1cnNvciBtb3ZlbWVudCBjb21tYW5kcyBkb24ndCByZXRhaW4gY29sdW1uIG9mZnNldA0KPC9ibG9ja3F1b3RlPg0KDQo8aDE+DQpFY2xpcHNlIFBsYXRmb3JtIEJ1aWxkIE5vdGVzPGJyPg0KU1dUPC9oMT4NClNXVCBCdWlsZCAyLjEgMDA1IC0gVHVlc2RheSBBdWd1c3QgMjAsIDIwMDINCg0KPGgyPg0KPGEgTkFNRT0iUHJvYmxlbSByZXBvcnRzIGZpeGVkIj48L2E+UHJvYmxlbSByZXBvcnRzIGZpeGVkPC9oMj4NCjxibG9ja3F1b3RlPg0KNDU1NDogQ29tYm8gc2VsZWN0aW9uIHNjcm9sbHMgZm9yIGNlcnRhaW4gZm9udHMgKDFHMUFEOVkpICANCjxicj40NTc3OiBDdHJsK0JhY2tzcGFjZSAmIEN0cmwrZGVsIGhhdmUgdGhlIHNhbWUga2V5IGNvZGUgYW5kIGtleSBldmVudCAoMUc1NFJBSikNCjxicj40Njg1OiBWYXJpYWJsZXMgVmlldyByZS1wb3NpdGlvbnMgb24gZWFjaCBzdGVwICgxR0VURThGKSAgDQo8YnI+MTAwOTE6IE1lc3NhZ2VCb3ggbG9zZXMgYWN0aXZhdGlvbiAgDQo8YnI+MTA5NzY6IFdvcmtiZW5jaCB3aW5kb3dzIGRvbid0IHJlb3BlbiBjb3JyZWN0bHkgaW4gRHVhbCBNb25pdG9yIGVudmlyb25tZW50cw0KPGJyPjE0OTQyOiBVbmV4cGVjdGVkIEtleURvd24gZXZlbnQgYWZ0ZXIgcHJlc3Npbmcgbm9uIGV4aXN0aW5nIG1lbnUgbW5lbW9uaWMNCjxicj4xODcwNTogVG9vIG11Y2ggZmxhc2hpbiBpbiBDb250cm9sIEV4YW1wbGUgIA0KPGJyPjIxODI5OiBBUEkgbmVlZGVkIHRvIGFsbG93IENDb21ibyB0byBkaXNwbGF5IGl0cyBsaXN0IGF0IHRoZSBwcmVmZXJlZCB3aWR0aA0KPGJyPjIyNDQzOiBPTEUgLSBvcmcuZWNsaXBzZS5zd3QuaW50ZXJuYWwub2xlLndpbjMyLkNPTlRST0xJTkZPIGhhcyBhIHVzZWxlc3MgZmllbGQgJ2ZpbGxlcicNCjxicj4yMjQ1NzogV2luMzIgb3JnLmVjbGlwc2Uuc3d0LndpZGdldHMuQ29tYm8gY29tcHV0ZVNpemUoKSBpcyB3cm9uZyAgDQo8YnI+MjI1MDc6IE1vZGFsIGRpYWxvZyBkb2VzIG5vdCBwcmV2ZW50IGFkanVzdGluZyBvZiB0YWJsZSBoZWFkZXJzIGluIHBhcmVudC4NCjwvYmxvY2txdW90ZT4NCg0KPGgxPg0KRWNsaXBzZSBQbGF0Zm9ybSBCdWlsZCBOb3Rlczxicj4NClNXVDwvaDE+DQpTV1QgQnVpbGQgMi4xIDAwNCAtIFR1ZXNkYXkgQXVndXN0IDEzLCAyMDAyDQoNCjxoMj4NCjxhIE5BTUU9IlByb2JsZW0gcmVwb3J0cyBmaXhlZCI+PC9hPlByb2JsZW0gcmVwb3J0cyBmaXhlZDwvaDI+DQo8YmxvY2txdW90ZT4NCjQ3Mzc6IFJlZHJhdyBwcm9ibGVtIGluIHRhYmxlICgxR0ZXMlBFKSAgDQo8YnI+OTA3NTogVG9vbHRpcHMgb25seSBwYXJ0aWFsbHkgZGlzcGxheWVkIGluIEhvdmVyaGVscC5qYXZhIGV4YW1wbGUgIA0KPGJyPjE1NjEwOiBTdHlsZWRUZXh0IC0gRG91YmxlLUNsaWNrLURyYWcgZG9lc24ndCB3b3JrLCB3b3JrcyBvbiBUZXh0ICANCjxicj4xNjk5MDogVG9vbEJhciBkb2VzIG5vdCBzZW5kIE1vdXNlSG92ZXIgZXZlbnRzICANCjxicj4yMDYzMjogUG9saXNoIG5hdGlvbmFsIGZvbnRzICANCjxicj4yMDc5Mjogc29tZXRpbWVzIHJlc2l6ZSBjYWxsYmFjayBpcyBub3Qgc2VudCB0byB0aGUgc2hlbGwgd2hlbiB0aGUgc2hlbGwgaXMgbm90IHZpc2libGUNCjxicj4yMDgxNTogTWVudXMgbm90IGRpc3BsYXllZCBvbiBTbWFydFBob25lIDIwMDIgIA0KPGJyPjIxMjY4OiBTdHlsZWRUZXh0IC0gQ3RybCtTaGlmdCtKIGluc2VydHMgbGluZSAgDQo8YnI+MjEyNzI6IFN0eWxlZFRleHQgZG9lcyBub3Qgc3VwcG9ydCBzZXR0aW5nIHNlbGVjdGlvbiB3aXRoIGNhcmV0IG9uIHRoZSBsZWZ0DQo8YnI+MjE5MjE6IEVtdWxhdGVkIFRhYmxlIHNldFRvcEluZGV4IGZhaWxzIGFuZCBjYXVzZXMgTlBFIHdoZW4gYWRkaW5nIGFuIGl0ZW0gYWZ0ZXJ3YXJkcw0KPGJyPjIxOTMzOiBUYWJsZUNvbHVtbiBkb2VzIG5vdCBsaXN0ZW4gdG8gQ29udHJvbEV2ZW50cyAgDQo8YnI+MjIwMDQ6IG5vIGtleWJvYXJkIHNob3J0Y3V0cyBmb3Igc3dpdGNoaW5nIGJldHdlZW4gcGFnZXMgb2YgTXVsdGlQYWdlRWRpdG9yUGFydA0KPGJyPjIyMTg4OiBTdHlsZWRUZXh0IC0gb25seSBmaXJzdCBjaGFyYWN0ZXIgb2YgYSBsaW5lIGRpc3BsYXllZCAgDQo8YnI+MjIyMDQ6IFBob3RvbjogVGV4dC5zZWxlY3RBbGwoKSBkb2VzIG5vdCBzZWxlY3QgYWxsIHRoZSB0ZXh0KEJCQVdUKSAgDQo8YnI+MjIyNTQ6IENvbW1hbmQgSCBpcyBub3QgbWFwcGVkIHByb3Blcmx5ICANCjxicj4yMjM2NTogU1dUX0FXVCBkb2VzIG5vdCBjb21waWxlIHVuZGVyIEpESyAxLjQgIA0KPC9ibG9ja3F1b3RlPg0KDQo8aDE+DQpFY2xpcHNlIFBsYXRmb3JtIEJ1aWxkIE5vdGVzPGJyPg0KU1dUPC9oMT4NClNXVCBCdWlsZCAyLjEgMDAzIC0gVHVlc2RheSBBdWd1c3QgNiwgMjAwMg0KDQo8aDI+DQo8YSBOQU1FPSJQcm9ibGVtIHJlcG9ydHMgZml4ZWQiPjwvYT5Qcm9ibGVtIHJlcG9ydHMgZml4ZWQ8L2gyPg0KPGJsb2NrcXVvdGU+DQo0NTIxOiBEaXNwbGF5LnN5bmNFeGVjIG9yIERpc3BsYXkuYXN5bmNFeGVjIGNhbiBibG9jayBwcm9jZXNzaW5nIG9mIG5hdGl2ZSBldmVudHMgKDFHMDNERjApDQo8YnI+MjAxNDQ6IEVudGVyIGtleSBub3Qgd29ya2luZyBpbiBwYWNrYWdlcyB2aWV3ICANCjxicj4yMTE3OTogU3RlcCBmaWx0ZXIgaW4tcGxhY2UgdGV4dCBlZGl0b3IgaW52aXNpYmxlICANCjxicj4yMTI0MzogU2Nyb2xsIGxvY2sgaW5zZXJ0cyBhIGNoYXJhY3RlciBkdXJpbmcgaW5jcmVtZW50YWwgc2VhcmNoIG9uIEdUSw0KPGJyPjIxMzM4OiBBY2NlbnRzIGFuZCDxIGRvbid0IHdvcmsgaW4gZWRpdG9yIHVzaW5nIGd0ayAgDQo8YnI+MjE0NzI6IGtleVByZXNzZWQgZXZlbnQgaWdub3JlZCBieSBvcmcuZWNsaXBzZS5zd3Qud2lkZ2V0cy5UZXh0IGZvciBFTlRFUiBrZXkNCjxicj4yMTY5NjogU3R5bGVkVGV4dCAtIFJURiB0cmFuc2ZlciBjb2RlcGFnZSBlbmNvZGluZyAgDQo8YnI+MjE2OTg6IFN0eWxlZFRleHQgLSBSVEYgd3JpdGVyIHBlcmZvcm1hbmNlIGltcHJvdmVtZW50ICANCjxicj4yMTgzNDogQ29vbGJhciAtIGRlbGV0aW5nIGl0ZW1zIGNvcnJ1cHRpbmcgbGF5b3V0ICANCjxicj4yMjAwNDogTm8ga2V5Ym9hcmQgc2hvcnRjdXRzIGZvciBzd2l0Y2hpbmcgYmV0d2VlbiBwYWdlcyBvZiBNdWx0aVBhZ2VFZGl0b3JQYXJ0DQo8YnI+MjIwMjU6IE1vdGlmOiBVbmV4cGxhaW5lZCB0ZXJtaW5hdGlvbiBydW5uaW5nIEJCQVdUIEpVbml0IHRlc3RzICANCjxicj4yMjAzNjogTU9USUY6IEFwcGVhcmFuY2UgaXNzdWUgd2l0aCBDb21ibyAgDQo8YnI+MjIwNjA6IFN0eWxlZFRleHQgLSBiaWRpIC0gQXJyYXlJbmRleE91dE9mQm91bmRzRXhjZXB0aW9uICANCjwvYmxvY2txdW90ZT4NCg0KPGgxPg0KRWNsaXBzZSBQbGF0Zm9ybSBCdWlsZCBOb3Rlczxicj4NClNXVDwvaDE+DQpTV1QgQnVpbGQgMi4xIDAwMiAtIFR1ZXNkYXkgSnVseSAzMCwgMjAwMg0KDQo8aDI+DQo8YSBOQU1FPSJQcm9ibGVtIHJlcG9ydHMgZml4ZWQiPjwvYT5Qcm9ibGVtIHJlcG9ydHMgZml4ZWQ8L2gyPg0KPGJsb2NrcXVvdGU+DQo0NTc4OiBDdHJsK0ogJiBDdHJsK0VudGVyIGhhdmUgdGhlIHNhbWUga2V5IGNvZGUgKDFHNTRSSkopICANCjxicj40ODE2OiBUYWJJdGVtIGRpc3BsYXlzICYgKDFHSkw3MDQpICANCjxicj42ODg4OiBDb21ibyBzZW5kcyBNb2RpZnlFdmVudCBvbiBzZXRJdGVtcyAgDQo8YnI+OTAyNTogT0xFLCBTdHlsZWRUZXh0IHdpZGdldCBhbmQgV2luQ0UgIA0KPGJyPjE5NjMyOiBUcmFja2VyIHNob3VsZCBhZGp1c3QgY3Vyc29yIG9uIG1vdXNlIG5vdCBkb3duLCBub3Qgb24gTUVOVSAgDQo8YnI+MTk5ODU6IFN0eWxlZFRleHQgLSBCdWxsZXRpbmcgcHJvb2ZpbmcgUlRGIGNvcHkgZnVuY3Rpb24gIA0KPGJyPjIwNjkxOiBTdHlsZWRUZXh0IC0gYmlkaSAtIFdpbjJLL1hQIHN1cHBvcnQgIA0KPGJyPjIwNzQ2OiBJbmNvbnNpc3RlbnQgQHBhcmFtIGluIEphdmFkb2MgZm9yICBUYWJsZUl0ZW0uc2V0R3JheWVkKGJvb2xlYW4pDQo8YnI+MjEzMTM6IENvbWJvLmdldEl0ZW0gd3JvbmcgZXJyb3IgdGhyb3duICANCjxicj4yMTQyMzogR1RLOiBHUEYgaW4gU2hlbGwuc2V0VmlzaWJsZSgpICANCjxicj4yMTUwMDogR1RLOiBTV1QuQWN0aXZhdGUgYW5kIFNXVC5EZWFjdGl2YXRlIGV2ZW50cyBub3QgZmlyZWQgd2hlbiBTaGVsbCB3aXRoIE5PX1RSSU0gdXNlZCBhcyBpdHMgc3R5bGUgYml0DQo8YnI+MjE1MjY6IFNoZWxsLmNvbXB1dGVUcmltIGRvZXMgbm90IGluY2x1ZGUgbWVudSBiYXIgIA0KPGJyPjIxNTYzOiBNbmVtb25pY3MgZ2l2ZSBmb2N1cyB0byB0aGUgbGFiZWwgb24gR1RLICANCjxicj4yMTU2NDogR1RLOiBUZXh0IG9mIEJ1dHRvbih3aXRoIHN0eWxlIGJpdCBTV1QuQ0hFQ0spIGRvZXMgbm90IHNob3cgdXAgY29ycmVjdGx5DQo8YnI+MjE1NzM6IFRhYmxlVHJlZUl0ZW0gc2hvdWxkIGhhdmUgZ2V0L3NldEdyYXllZCgpIG1ldGhvZHMgbGlrZSBUYWJsZUl0ZW0NCjxicj4yMTYwMTogZ2V0TGluZUNvdW50KCkgbWV0aG9kIGZvciBUZXh0IHdpZGdldCBkb2VzIG5vdCB3b3JrIG9uIE1vdGlmICANCjxicj4yMTYyMzogTGlzdC5zZXRTZWxlY3Rpb24gKGludCBzdGFydCwgaW50IGVuZCkgZmFpbHMgb24gTW90aWYgIA0KPGJyPjIxNjUzOiBXaW5DRS9TSDQ6IEFycm93IGtleXMgZG9uJ3QgZ2VuZXJhdGUga2V5IGV2ZW50cyAgDQo8YnI+MjE3MDI6IERlYnVnIERpc3BsYXkgdmlldyBlcnJvciBtc2cgdG8gY29uc29sZSBvbiBHVEsgIA0KPGJyPjIxNzA2OiBCaWRpVXRpbCBpbiB3aW4zMiBoYXMgQ2xhc3MuZm9yTmFtZSgpIHVzYWdlICANCjxicj4yMTgwNTogZXZlbnQuY2hhcmFjdGVyID0gMCBmb3IgYWxsIEN0cmwtPGFscGhhPiBvbiBRTlggNi4yICANCjxicj4yMTkzNzogQ09NT2JqZWN0IGxlYWthZ2Ugb24gT2xlQ29udHJvbFNpdGUgIA0KPGJyPjIxOTU4OiBDb250cm9sRXhhbXBsZSBGaWxlRGlhbG9nIGRvZXMgbm90IGZpbHRlciBjb3JyZWN0bHkgIA0KPGJyPjIxOTY0OiBHVEs6IEFkZGluZyBhbiBpdGVtIHRvIENvbWJvIGNoYW5nZXMgdGhlIHNlbGVjdGlvbiBpbmRleCAgDQo8YnI+MjE5Njc6IEdUSzogU2V0dGluZyBzZWxlY3Rpb24gaW5kZXggdG8gLTEgZm9yIGEgQ29tYm8gdGhyb3dzIGFuIGV4Y2VwdGlvbg0KPGJyPjIxOTY5OiBMaXN0LmdldFNlbGVjdGlvbkluZGV4IGJ1ZyAgDQo8YnI+MjE5NzY6IEdUSzogQ29tYm8uZ2V0U2VsZWN0aW9uSW5kZXgoKSBjaGFuZ2VzIHdoZW4gYW4gaXRlbSBpcyByZW1vdmVkDQo8L2Jsb2NrcXVvdGU+DQoNCjxoMT4NCkVjbGlwc2UgUGxhdGZvcm0gQnVpbGQgTm90ZXM8YnI+DQpTV1Q8L2gxPg0KU1dUIEJ1aWxkIDIuMSAwMDEgLSBUdWVzZGF5IEp1bHkgMjMsIDIwMDINCg0KPGgyPg0KPGEgTkFNRT0iUHJvYmxlbSByZXBvcnRzIGZpeGVkIj48L2E+UHJvYmxlbSByZXBvcnRzIGZpeGVkPC9oMj4NCjxibG9ja3F1b3RlPg0KNDQyODogVGFibGUgLSBHcmlkIGxpbmVzIG5vdCBkcmF3biBjb3JyZWN0bHkgKDFGRTRLNVUpICANCjxicj40NDUxOiBTaGVsbDogc2V0RGVmYXVsdEJ1dHRvbiwgZGVmYXVsdCBidXR0b24gY2Fubm90IGJlIHJlc2V0IHRvIG51bGwgKDFGR0xTNk0pDQo8YnI+NDQ4OTogTW91c2VVcCBmaXJlZCBmb3IgYnV0dG9uIDEgd2hlbiBidXR0b24gMSBpcyBzdGlsbCBwcmVzc2VkICgxRk9ERFA0KQ0KPGJyPjQ1MTE6IFBhbmUgdGl0bGUgdXBkYXRlIGZsYXNoZXMgdG9vbCBiYXIgYnV0dG9ucyAoMUZVVVI3QSkgIA0KPGJyPjQ1MjQ6IENUUkwgc2VxdWVuY2VzIG5vdCBoYW5kbGVkIGdyYWNlZnVsbHkgYnkgVGV4dEVkaXRvciAoMUZWU0JUUykgIA0KPGJyPjQ1NDQ6IENUUkwgY29tYmluYXRpb24gbm90IGhhbmRsZWQgYXMgYWNjZWxlcmF0b3JzIHdoZW4gQ2FwcyBhcmUgbG9ja2VkICgxRlpRREdSKQ0KPGJyPjQ1OTA6IFZlcmlmeUV2ZW50IHZhbHVlcyBpZ25vcmVkICgxRzdHNVkzKSAgDQo8YnI+NDYyNjogVGFibGVUcmVlOiBUd28gc2VsZWN0aW9uIGV2ZW50cyBnZW5lcmF0ZWQgZm9yIGVhY2ggY2hlY2tib3ggc2VsZWN0aW9uICgxR0JSU0xNKQ0KPGJyPjQ2NDI6IERpcmVjdG9yeURpYWxvZyBkb2VzIG5vdCBzdXBwb3J0IC8gb24gd2luZG93cyAoMUdENDFEWikgIA0KPGJyPjQ2NDg6IE1lbnVJdGVtLnNldEVuYWJsZWQoKSBhbHdheXMgY2F1c2VzIGEgcmVkcmF3ICgxR0REQ04yKSAgDQo8YnI+NDc4NjogRm9udERpYWxvZyBzaG91bGQgZ2l2ZSBhY2Nlc3MgdG8gY29sb3Igc2V0dGluZyAoMUdJRUZCRCkgIA0KPGJyPjQ4NjE6IEtleSBzdGF0ZSBmb3IgdG9vbGJhciBpdGVtcyAoMUdMNTRBMCkgIA0KPGJyPjU5MzU6IFN0eWxlZFRleHQgLSB1cC9kb3duIGFycm93IGJlaGF2aW9yIHdydCB2YXJ5aW5nIGxpbmUgbGVuZ3RocyAgDQo8YnI+Njc3NTogUmFkaW8gYnV0dG9uIHNldFNlbGVjdGlvbiBjaGFuZ2VzIGZvY3VzICANCjxicj45ODU5OiBDb21ibyB3aWRnZXQgZG9lc24ndCBmaXJlIGtleVByZXNzZWQgb3Iga2V5UmVsZWFzZWQgZm9yIEVudGVyIGtleQ0KPGJyPjExODY4OiBTdHlsZWRUZXh0OiB0ZXh0IHNlbGVjdGlvbiB3aXRoIGtleSAnYXJyb3cgZG93bicgZG9lcyBub3QgaW5jbHVkZSBsYXN0IGxpbmUNCjxicj4xMTk5NDogU3R5bGVkVGV4dCAtIHJlcGxhY2UgZ2V0WEF0T2Zmc2V0KGNhcmV0T2Zmc2V0KSB3aXRoIGNhcmV0LmdldExvY2F0aW9uKCkueA0KPGJyPjEyMTc4OiBTdHlsZWRUZXh0IC0gbW92ZSBTdHlsZWRUZXh0UmVuZGVyZXIjYmlkaVRleHRXaWR0aCB0byBEaXNwbGF5UmVuZGVyZXINCjxicj4xMjE4MTogU3R5bGVkVGV4dCAtIG1peGluZyB0ZXh0IHdpZHRoL2NhcmV0IHBvc2l0aW9uIGlzIGNvbmZ1c2luZyAgDQo8YnI+MTM5NDQ6IERDUiAtIE5lZWQgY3V0L2NvcHkvcGFzdGUgcm91dGluZXMgb24gQ29tYm8gIA0KPGJyPjE0NjcyOiBDb21ibyBhbmQgU2NhbGUgc2V0QmFja2dyb3VuZCBkb2VzIG5vdCByZWZyZXNoICANCjxicj4xNDc5OTogV2luZG93IG1hbmlwdWxhdGlvbnMgYmxvY2sgb3RoZXIgdGhyZWFkcyBmcm9tIGV4ZWN1dGluZyAgDQo8YnI+MTUwODg6IFN0eWxlZFRleHQgLSBnZXRUb3BJbmRleCBzZW1hbnRpY3MgdW5kZWZpbmVkIHdoZW4gbm8gbGluZSBmdWxseSB2aXNpYmxlDQo8YnI+MTU1NTQ6IERDUiAtIGFsaWdubWVudCBpbiBhIHRleHQgd2lkZ2V0ICANCjxicj4xNTU1OTogSkFXUyByZWFkcyB0aGUgcGFyZW50IHdpbmRvdyBmb3IgZGlhbG9nIHNoZWxscyAgDQo8YnI+MTU3Mjg6IFBhY2thZ2VzIHZpZXcgc2VsZWN0aW9uIGFsd2F5cyBvbmUgdG9vIGhpZ2ggIA0KPGJyPjE2MTEwOiBTdHlsZWRUZXh0IHNjcm9sbCBub3Qgd29ya2luZyB3aXRoIFBhZ2VVcC9Eb3duIGtleXMuICANCjxicj4xNjIwNTogU3R5bGVkVGV4dCAtIFRhYiBkb2VzIG5vdCB0YWIgb3V0IG9mIHJlYWQtb25seSAgDQo8YnI+MTY0MDI6IFdvcmtpbmcgc2V0IGRpYWxvZzogdGFibGUgY29sdW1ucyBoYXZlIGluY29ycmVjdCBzaXplICANCjxicj4xNjc3NzogQnVzeSBjdXJzb3IgbG9zdCBvdmVyIHByb2dyZXNzIGluZGljYXRvciBlZGdlcyAgDQo8YnI+MTY5ODY6IEphdmFWaWV3ZXIgZXhhbXBsZSBzaG91bGQgcmVtZW1iZXIgcGF0aCAgDQo8YnI+MTcxOTE6IFNXVCBFcnJvciBpbiBKVW5pdCB2aWV3ICANCjxicj4xNzI1MjogQWNjZWxlcmF0b3IgbGFiZWxzOiBDdHJsLVNoaWZ0LUEsIFNoaWZ0LUN0cmwtQSBvciBTaGlmdC1DdGwtQT8NCjxicj4xNzI3OTogRXh0cmEgQ29vbEJhciByb3cgY3JlYXRlZCB3aGVuIHN3aXRjaGluZyBwZXJzcGVjdGl2ZXMuICANCjxicj4xNzM3MDogQ29tYm8gYm94IGZsYXNoZXMgdG8gbXVjaCB3aGVuIHJlc2l6aW5nIGRpYWxvZy4gIA0KPGJyPjE3OTkzOiBGaW5kL1JlcGxhY2Ugc2hvdWxkbid0IHJlcGxhY2UgdHlwZWQgZW50cnkgd2l0aCB2YWx1ZSBmcm9tIGhpc3RvcnkNCjxicj4xODI1MzogQ29vbGJhciAtIGRpc3Bvc2luZyBpdGVtcyBub3QgaG9ub3Jpbmcgc2V0UmVkcmF3ID0gZmFsc2UgIA0KPGJyPjE4MzA4OiBDdHJsK1NISUZUK0AgZG9lcyBub3QgY2FsbCB0aGUgbGlzdGVuZXIuICANCjxicj4xODQyOTogU2Nyb2xsZWRDb21wb3NpdGUgd2l0aCBMYXlvdXRNYW5hZ2VyIGlzIFZFUlkgc2xvdyBpbiBpUEFRICANCjxicj4xODU3MDogQ29tYm8gZmxhc2hlcyBieSByZXNpemluZyAgDQo8YnI+MTkzODA6IExpc3Rib3hlcyBmbGFzaCBhcyBwcmVmZXJlbmNlcyBkaWFsb2cgaXMgcmVzaXplZCAgDQo8YnI+MTk0MzQ6IFRvb2xJdGVtIGRvZXMgbm90IG5lZWQgdG8gY2hlY2sgZm9yIFRPR0dMRSAgDQo8YnI+MTk1Njg6IHt9IG9uIGEgZ2VybWFuIGtleWJvYXJkIFtzd3QtY2FyYm9uXSAgDQo8YnI+MTk2MTU6IFN0eWxlZFRleHQgLSBleGFtcGxlIFRleHQgRWRpdG9yIGJ1ZyBpbiBjb3B5L3Bhc3RlICANCjxicj4xOTYzMDogQ29vbGJhciAtIG9kZCBkaXNwb3NlIGJlaGF2aW9yICANCjxicj4xOTgxNTogSlJFIGNyYXNoZXMgdXNpbmcgZXJyb3IgbG9nIGFuZCBwcm9ncmVzcyBiYXIuICANCjxicj4xOTk2NDogQ29vbGJhciAtIGNhbiAibG9zZSIgaXRlbXMgd2hlbiBwbGF0Zm9ybSB3aWRnZXQgd3JhcHMgIA0KPGJyPjIwMTU5OiBSaWdodC1jbGlja2luZyBvbiBjb29sYmFyIGdyYWJiZXIgY2F1c2VzIHN0cmFuZ2UgYmVoYXZpb3IgIA0KPGJyPjIwMTgzOiBNb3RpZiA6IENvb2xiYXIgcHJlZmVycmVkIHNpemUgaXMgdG9vIHNtYWxsIHdpZHRoIHdpc2UgIA0KPGJyPjIwMTkwOiBDb29sQmFyIHByb2JsZW1zIG9uIFdpbmRvd3MgWFAgd2l0aCBNYW5pZmVzdCAgDQo8YnI+MjAzMzk6IEhpdHRpbmcgc3BhY2ViYXIgZG9lcyBub3QgcHJlc3MgY3VycmVudGx5IGZvY3VzZWQgYnV0dG9uICANCjxicj4yMDU4MzogU2VnZmF1bHQgd2hlbiBjb250cm9sIHRyaWVzIHRvIGRpc3Bvc2Ugb2YgaXRzZWxmIHVuZGVyIE1vdGlmICANCjxicj4yMDY4MzogW0V4dGVybmFsVG9vbHNdICBGMyAoYW5kIEYyKSBjcmFzaGVzIHRoZSBKVk0gd2hlbiB0cnlpbmcgdG8gY2FuY2VsIGFuIGV4dGVybmFsIHRvb2wgb24gbGludXgtZ3RrDQo8YnI+MjA2OTA6IFN0eWxlZFRleHQgLSBiaWRpIC0gc2hvdWxkIGZvcmNlIGZvbnQgc2NyaXB0IHdoZW4ga2V5Ym9hcmQgbGFuZ3VhZ2UgY2hhbmdlZA0KPGJyPjIwNzA1OiBDdXJzb3IgS2V5cyBkb24ndCB3b3JrIGluIERpYWxvZ3MgIA0KPGJyPjIwNzIyOiBHVEsgVGFibGVDb2x1bW4jcGFjayBkb2VzIG5vdCB3b3JrIGlmIG5vIGhlYWRlciAgDQo8YnI+MjA3ODg6IEEgY29tcG9zaXRlIGlzIGJlaW5nIG15c3RlcmlvdXNseSBkaXNwb3NlZCBmb3Igbm8gcmVhc29uICANCjxicj4yMDg0NjogV0lOMzI6ICdDb21iby5pbmRleE9mJyBhbHdheXMgcmV0dXJucyAtMSBmb3IgZW1wdHkgc3RyaW5nICANCjxicj4yMDg5MzogQmFkIHNpemUgZm9yIFRleHQgd2lkZ2V0IHdoZW4gZmxhZyBSRUFEX09OTFkgaXMgc2V0IChQaG90b24pICANCjxicj4yMDkwNDogU1dUIGV4Y2VwdGlvbiBvbiBMYXlvdXRFeGFtcGxlIChQaG90b24pICANCjxicj4yMDk1MDogR1RLOiBGMSBoZWxwIGRvZXMgbm90IHdvcmsgZm9yIG1lbnUgaXRlbXMuICANCjxicj4yMDk1NjogRW11bGF0ZWQgQ29vbEl0ZW0gZG8gbm90IHJlc3BlY3QgU1dULkRST1BfRE9XTiBmbGFnICANCjxicj4yMTAzMDogU3R5bGVkVGV4dCAtIGR1cmluZyBjdXQgaWYgY2xpcGJvYXJkIGNvcHkgZmFpbHMgZG8gbm90IGRlbGV0ZSB0ZXh0DQo8YnI+MjEwOTY6IFByb3BlcnRpZXMgYWNjZWxlcmF0b3IgbWlzc2luZyBFTlRFUiAgDQo8YnI+MjExMjI6IEVtYWNzOiBBY2NlbGVyYXRvcnMgbm90IHNob3duIGluIG1lbnVzIHVuZGVyIEdUSyAgDQo8YnI+MjExNTQ6IFN0eWxlZFRleHQgLSBCSURJIC0gQmFkIGVmZmVjdCBvZiBSTE8gdW5pY29kZSBjaGFyYWN0ZXIgIA0KPGJyPjIxMTkyOiBVbnNhdGlzZmllZExpbmtFcnJvciB0aHJvd24gd2hlbiBwcmVzc2luZyBhIGhhcmR3YXJlIGtleSAgDQo8YnI+MjEyMTU6IFtIZWxwXSBGMSBIZWxwIGRvZXMgbm90IGNsb3NlIG1lbnUgb24gR1RLICANCjxicj4yMTIyMzogU3R5bGVkVGV4dCAtIEN1cnNvciBzaG91bGQgc3RvcCBibGlua2luZyB3aGVuIG1vdmluZyAgDQo8YnI+MjEyNjg6IFN0eWxlZFRleHQgLSBDdHJsK1NoaWZ0K0ogaW5zZXJ0cyBsaW5lICANCjxicj4yMTM2ODogR1RLOiBHQy5kcmF3SW1hZ2UoKSBmYWlscyB3aGVuIHNjYWxpbmcgYW4gaW1hZ2UgIA0KPGJyPjIxMzcxOiBTV1RFcnJvciB3aGlsZSB1c2luZyBOYXZpZ2F0b3ItPkdvdG8tPlJlc291cmNlICANCjxicj4yMTM3ODogR1RLOiBTaGVsbCBldmVudCdzIGRvaXQgZmxhZyBpZ25vcmVkIHdoZW4gc2hlbGxDbG9zZWQoKSBpcyBjYWxsZWQNCjxicj4yMTQxMjogUGFzdGUgd2l0aCBhY2NlbGF0b3Iga2V5IGRvZXNuJ3Qgd29yayAgDQo8YnI+MjE0MTM6IENvb2xCYXIgY29tcHV0ZVNpemUgZmFpbHMgb24gWFAgIA0KPGJyPjIxNDE1OiBKYXZhZG9jIGZvciBDTGFiZWwuc2V0QmFja2dyb3VuZCBoYXMgdHlwb3MgIA0KPGJyPjIxNDQwOiBVbmFibGUgdG8gZGlzcGxheSBUb2RheSBzY3JlZW4gd2hlbiBTV1QgYXBwIHJ1bm5pbmcgb24gV2luQ0UgIA0KPGJyPjIxNDQ5OiBHVEs6IENhbGxpbmcgVGV4dC5zZXRTZWxlY3Rpb24oKSBjYXVzZXMgR1BGICANCjxicj4yMTQ1NjogR1RLOiBDYW5ub3QgdHlwZSBpbiBUZXh0IHdpZGdldCBjb250YWluZWQgaW4gU2hlbGwgd2hpY2ggaGFzIHN0eWxlIGJpdCBhcyBOT19UUklNDQo8YnI+MjE0ODQ6IFNoaWZ0LVRhYiBkb2VzIG5vdGhpbmcgb24gR1RLICANCjxicj4yMTUyMzogU3R5bGVkVGV4dCAtIGNhcmV0IGRvZXMgbm90IG1vdmUgd2hlbiB3aWRnZXQgc2hlbGwgaXMgbm90IG9wZW4NCjxicj4yMTUyNDogU3R5bGVkVGV4dCAtIE5QRSB3aGVuIHR5cGluZyB0ZXh0IGFuZCBjYXJldCBpcyBudWxsICANCjxicj4yMTU5NjogU3R5bGVkVGV4dCAtIGluaXRpYWwgYmlkaSBjYXJldCBwb3NpdGlvbiB3cm9uZyB3aGVuIHdpZGdldCBlbXB0eQ0KPGJyPjIxNTk4OiBTdHlsZWRUZXh0IC0gc2V0Rm9udCBlbmFibGVzIGNhcmV0IHdoZW4gaXQgd2FzIGRpc2FibGVkICANCjwvYmxvY2txdW90ZT4NCg0KPGgxPg0KRWNsaXBzZSBQbGF0Zm9ybSBCdWlsZCBOb3Rlczxicj4NClNXVDwvaDE+DQpTV1QgQnVpbGQgMi4wIDA0OWQgLSBNb25kYXkgQXVndXN0IDI2LCAyMDAyICgyLjAuMSBzdHJlYW0pDQoNCjxoMj4NCjxhIE5BTUU9IlByb2JsZW0gcmVwb3J0cyBmaXhlZCI+PC9hPlByb2JsZW0gcmVwb3J0cyBmaXhlZDwvaDI+DQo8YmxvY2txdW90ZT4NCjIyNzI5OiBQZXJtaXNzaW9ucy5wcm9wZXJ0aWVzIG1pc3NpbmcgZnJvbSB0aGUgYnVpbGQgc2NyaXB0DQo8YnI+MjI3Nzk6IEVjbGlwc2UgbGludXgtbW90aWYgR1BGcyBvbiBleGl0IG9uIEo5DQo8L2Jsb2NrcXVvdGU+DQoNCjxoMT4NCkVjbGlwc2UgUGxhdGZvcm0gQnVpbGQgTm90ZXM8YnI+DQpTV1Q8L2gxPg0KU1dUIEJ1aWxkIDIuMCAwNDliIC0gV2VkbmVzZGF5IEF1Z3VzdCAyMSwgMjAwMiAoMi4wLjEgc3RyZWFtKQ0KDQo8aDI+DQo8YSBOQU1FPSJQcm9ibGVtIHJlcG9ydHMgZml4ZWQiPjwvYT5Qcm9ibGVtIHJlcG9ydHMgZml4ZWQ8L2gyPg0KPGJsb2NrcXVvdGU+DQoyMjQ0ODogQ29vbEJhciAtIGRlbGV0aW5nIGZpcnN0IGl0ZW0gaW4gcm93IGRvZXMgdW5uZWNlc3NhcnkgY29sbGFwc2UvZXhwYW5kIG9mIHJvdw0KPGJyPjIyNTYxOiBIb3ZlciBIZWxwIGJyb2tlbiBpbiAyLjAuMSBJMjAwMjA4MTUNCjwvYmxvY2txdW90ZT4NCg0KPGgxPg0KRWNsaXBzZSBQbGF0Zm9ybSBCdWlsZCBOb3Rlczxicj4NClNXVDwvaDE+DQpTV1QgQnVpbGQgMi4wIDA0OSAtIFdlZG5lc2RheSBBdWd1c3QgMTQsIDIwMDIgKDIuMC4xIHN0cmVhbSkNCg0KPGgyPg0KPGEgTkFNRT0iUHJvYmxlbSByZXBvcnRzIGZpeGVkIj48L2E+UHJvYmxlbSByZXBvcnRzIGZpeGVkPC9oMj4NCjxibG9ja3F1b3RlPg0KMjIwNTU6IENvb2xCYXIgLSBzZXRXcmFwSW5kaWNlcyBjYXVzZXMgcm93cyB0byBjb2xsYXBzZS9leHBhbmQgdW5uZWNlc3NhcmlseQ0KPGJyPjIyMTQ0OiBDb29sYmFyIC0gc2V0U2l6ZSBub3QgYmVpbmcgaG9ub3JlZCBhZnRlciBzZXRXcmFwSW5kaWNlcyBBUEkgdXNlZA0KPGJyPjIyMzIwOiBDb29sYmFyIC0gZGVsZXRlIGl0ZW0gYmVoYXZpb3IgcHJvYmxlbQ0KPC9ibG9ja3F1b3RlPg0KDQo8aDE+DQpFY2xpcHNlIFBsYXRmb3JtIEJ1aWxkIE5vdGVzPGJyPg0KU1dUPC9oMT4NClNXVCBCdWlsZCAyLjAgMDQ4IC0gVHVlc2RheSBBdWd1c3QgNiwgMjAwMiAoMi4wLjEgc3RyZWFtKQ0KDQo8aDI+DQo8YSBOQU1FPSJQcm9ibGVtIHJlcG9ydHMgZml4ZWQiPjwvYT5Qcm9ibGVtIHJlcG9ydHMgZml4ZWQ8L2gyPg0KPGJsb2NrcXVvdGU+DQoxNTU1OTogSkFXUyByZWFkcyB0aGUgcGFyZW50IHdpbmRvdyBmb3IgZGlhbG9nIHNoZWxscw0KPGJyPjE4MjUzOiBDb29sYmFyIC0gZGlzcG9zaW5nIGl0ZW1zIG5vdCBob25vcmluZyBzZXRSZWRyYXcgPSBmYWxzZQ0KPGJyPjE5OTY0OiBDb29sYmFyIC0gY2FuICJsb3NlIiBpdGVtcyB3aGVuIHBsYXRmb3JtIHdpZGdldCB3cmFwcyAgDQo8YnI+MjEyNjg6IFN0eWxlZFRleHQgLSBDdHJsK1NoaWZ0K0ogaW5zZXJ0cyBsaW5lDQo8YnI+MjE4MzQ6IENvb2xiYXIgLSBkZWxldGluZyBpdGVtcyBjb3JydXB0aW5nIGxheW91dA0KPC9ibG9ja3F1b3RlPg0KDQo8aDE+DQpFY2xpcHNlIFBsYXRmb3JtIEJ1aWxkIE5vdGVzPGJyPg0KU1dUPC9oMT4NClNXVCBCdWlsZCAyLjAgMDQ3IC0gTW9uZGF5IEp1bmUgMTcsIDIwMDINCg0KPGgyPg0KPGEgTkFNRT0iUHJvYmxlbSByZXBvcnRzIGZpeGVkIj48L2E+UHJvYmxlbSByZXBvcnRzIGZpeGVkPC9oMj4NCjxibG9ja3F1b3RlPg0KNDc3MjogSmF2YWRvYzogR3JhcGhpY3MgY29uc3RydWN0b3JzIG5lZWQgdG8gZG9jIGlmIGRldmljZSBudWxsICgxR0hTUFVXKQ0KPGJyPjE0MTQ0OiBTY3JvbGxCYXJzIGNhbid0IGJlIG1hZGUgaW52aXNpYmxlIG9uIFBvY2tldFBDICANCjxicj4yMDI2NTogRjMuIHRlc3QgQzMuIE5vIG5ldyB1cGRhdGVzIGZvciBFY2xpcHNlIG9uIEhQLiAgDQo8YnI+MjAzNjI6IENvb2xiYXIgY2Fubm90IGJlIHRyYXZlcnNlZCB0byAgDQo8L2Jsb2NrcXVvdGU+DQoNCjxoMT4NCkVjbGlwc2UgUGxhdGZvcm0gQnVpbGQgTm90ZXM8YnI+DQpTV1Q8L2gxPg0KU1dUIEJ1aWxkIDIuMCAwNDYgLSBGcmlkYXkgSnVuZSAxNCwgMjAwMg0KDQo8aDI+DQo8YSBOQU1FPSJQcm9ibGVtIHJlcG9ydHMgZml4ZWQiPjwvYT5Qcm9ibGVtIHJlcG9ydHMgZml4ZWQ8L2gyPg0KPGJsb2NrcXVvdGU+DQoxNjgwOTogQ2xpY2tpbmcgdG8gY2xvc2Ugbm9uLWFjdGl2ZSBlZGl0b3IgZG9lc24ndCBoYXZlIGFuIGFmZmVjdCAgDQo8YnI+MTY5Mzk6IERuRDogTW92aW5nIHRoZSBtb3VzZSB3aGlsZSBkcm9wcGluZyBiZWhhdmVzIHN0cmFuZ2VseSB3aGlsZSBkcmFnZ2luZyB2aWV3cw0KPGJyPjE3MTkwOiBObyBjZWxsIGVkaXRvciBzdXBwb3J0ICANCjxicj4xNzU2MzogRmxhdCB0b29sIGJhciBidXR0b25zICANCjxicj4xNzYyMTogUmVzb3VyY2UgUGF0Y2hlciB3aXphcmQgLSB3aWRnZXRzIG5vdCBwcm9wZXJseSBhbGlnbmVkICANCjxicj4xOTA4OTogTm8gcG9wdXAgbWVudSBqYXZhIGVkaXRvciBydWxlciAoUGhvdG9uKSAgDQo8YnI+MTkyNDM6IEVjbGlwc2UgbGF1bmNoZXJzIGhhdmUgaGFyZGNvZGVkIGo5IGFyZ3MgIA0KPGJyPjE5MjQ0OiBTcGFjaW5nIGJldHdlZW4gVGFibGUgcm93cyBncm93cyB3aXRoIG51bWJlciBvZiByb3dzICANCjxicj4yMDAwNjogWCBQb2ludGVyIGdyYWIgbm90IHJlbGVhc2VkICANCjxicj4yMDA0NDogVW5hYmxlIHRvIHNjcm9sbCBsaWNlbnNlIHRleHQgdXNpbmcga2V5Ym9hcmQgIA0KPGJyPjIwMDcyOiBXb3JrYmVuY2ggYm91bmNlcyB3aGVuIHN3dGljaGluZyBwZXJzcGVjdGl2ZXMgIA0KPGJyPjIwMTM0OiBFY2xpcHNlIENMT1NFUyBhdXRvbWF0aWNhbGx5LCB3aGVuIGknbSB3b3JraW5nIGluIGl0ICANCjxicj4yMDE4NDogQ29sb3IgamF2YWRvYyBjb3VsZCB1c2UgcmVmZXJlbmNlIHRvIERldmljZS5nZXRTeXN0ZW1Db2xvcigpICANCjxicj4yMDIwOTogSGFuZyBkdWUgdG8gT1MgbG9ja2luZyAgDQo8YnI+MjAzNTQ6IEdQIHdoZW4gYXR0ZW1wdCB0byBjaGVjayBvdXQgU1dUIGZyb20gcmVwb3NpdG9yeSAgDQo8YnI+MjAzNzI6IFRyYWNrZXIgbmVlZHMgbW9yZSBqYXZhZG9jICANCjwvYmxvY2txdW90ZT4NCg0KPGgxPg0KRWNsaXBzZSBQbGF0Zm9ybSBCdWlsZCBOb3Rlczxicj4NClNXVDwvaDE+DQpTV1QgQnVpbGQgMi4wIDA0NiAtIFR1ZXNkYXkgSnVuZSAxMSwgMjAwMg0KDQo8aDI+DQo8YSBOQU1FPSJQcm9ibGVtIHJlcG9ydHMgZml4ZWQiPjwvYT5Qcm9ibGVtIHJlcG9ydHMgZml4ZWQ8L2gyPg0KPGJsb2NrcXVvdGU+DQoxNjgwOTogQ2xpY2tpbmcgdG8gY2xvc2Ugbm9uLWFjdGl2ZSBlZGl0b3IgZG9lc24ndCBoYXZlIGFuIGFmZmVjdCAgDQo8YnI+MTY5Mzk6IERuRDogTW92aW5nIHRoZSBtb3VzZSB3aGlsZSBkcm9wcGluZyBiZWhhdmVzIHN0cmFuZ2VseSB3aGlsZSBkcmFnZ2luZyB2aWV3cw0KPGJyPjE3MTkwOiBObyBjZWxsIGVkaXRvciBzdXBwb3J0ICANCjxicj4xNzU2MzogRmxhdCB0b29sIGJhciBidXR0b25zICANCjxicj4xNzYyMTogUmVzb3VyY2UgUGF0Y2hlciB3aXphcmQgLSB3aWRnZXRzIG5vdCBwcm9wZXJseSBhbGlnbmVkICANCjxicj4xOTA4OTogTm8gcG9wdXAgbWVudSBqYXZhIGVkaXRvciBydWxlciAoUGhvdG9uKSAgDQo8YnI+MTkyNDM6IEVjbGlwc2UgbGF1bmNoZXJzIGhhdmUgaGFyZGNvZGVkIGo5IGFyZ3MgIA0KPGJyPjE5MjQ0OiBTcGFjaW5nIGJldHdlZW4gVGFibGUgcm93cyBncm93cyB3aXRoIG51bWJlciBvZiByb3dzICANCjxicj4yMDAwNjogWCBQb2ludGVyIGdyYWIgbm90IHJlbGVhc2VkICANCjxicj4yMDA0NDogVW5hYmxlIHRvIHNjcm9sbCBsaWNlbnNlIHRleHQgdXNpbmcga2V5Ym9hcmQgIA0KPGJyPjIwMDcyOiBXb3JrYmVuY2ggYm91bmNlcyB3aGVuIHN3dGljaGluZyBwZXJzcGVjdGl2ZXMgIA0KPGJyPjIwMTM0OiBFY2xpcHNlIENMT1NFUyBhdXRvbWF0aWNhbGx5LCB3aGVuIGknbSB3b3JraW5nIGluIGl0ICANCjxicj4yMDE4NDogQ29sb3IgamF2YWRvYyBjb3VsZCB1c2UgcmVmZXJlbmNlIHRvIERldmljZS5nZXRTeXN0ZW1Db2xvcigpICANCjxicj4yMDIwOTogSGFuZyBkdWUgdG8gT1MgbG9ja2luZyAgDQo8YnI+MjAzNTQ6IEdQIHdoZW4gYXR0ZW1wdCB0byBjaGVjayBvdXQgU1dUIGZyb20gcmVwb3NpdG9yeSAgDQo8YnI+MjAzNzI6IFRyYWNrZXIgbmVlZHMgbW9yZSBqYXZhZG9jICANCjwvYmxvY2txdW90ZT4NCg0KPGgxPg0KRWNsaXBzZSBQbGF0Zm9ybSBCdWlsZCBOb3Rlczxicj4NClNXVDwvaDE+DQpTV1QgQnVpbGQgMi4wIDA0NSAtIFR1ZXNkYXkgSnVuZSAxMSwgMjAwMg0KDQo8aDI+DQo8YSBOQU1FPSJQcm9ibGVtIHJlcG9ydHMgZml4ZWQiPjwvYT5Qcm9ibGVtIHJlcG9ydHMgZml4ZWQ8L2gyPg0KPGJsb2NrcXVvdGU+DQoxNTI0MjogQ29vbEJhciAtIGxheW91dCBpc3N1ZXMgIA0KPGJyPjE4NTE3OiBDb29sYmFyIC0gZGVsZXRlIGFuZCByb3cgbGF5b3V0IGJ1ZyAgDQo8YnI+MTkwOTA6IENvbWJvIGRvZXNuJ3Qgc2l6ZSBpdHNlbGYgcHJvcGVybHkgaW4gR1RLMiAgDQo8YnI+MTk2NzA6IFJlZ3Jlc3Npb24gaW4gT0xFIHN1cHBvcnQgIA0KPGJyPjE5NjcxOiBVbmFibGUgdG8gZXhwYW5kL2NvbGxhcHNlIHRyZWVzIGluIHByb3BlcnRpZXMgdmlldyAgDQo8YnI+MTk3MjA6IENvb2xiYXIgLSBnZXRQcmVmZXJyZWRTaXplIHByb2JsZW0gKHdhcyBnZXRDbGllbnRBcmVhIHByb2JsZW0pDQo8YnI+MTk3ODc6IEhvdmVyIGhlbHAgaXMgbm90IHJlbW92ZWQgIA0KPGJyPjE5OTQ3OiBHVEsyIHNlbmRzIGtleSBldmVudHMgd2l0aCBib3RoIGtleUNvZGUgYW5kIGNoYXJhY3RlciBlcXVhbHMgdG8gMCBmb3Igc29tZSBrZXlzDQo8L2Jsb2NrcXVvdGU+DQoNCjxoMT4NCkVjbGlwc2UgUGxhdGZvcm0gQnVpbGQgTm90ZXM8YnI+DQpTV1Q8L2gxPg0KU1dUIEJ1aWxkIDIuMCAwNDQgLSBNb25kYXkgSnVuZSAxMCwgMjAwMg0KDQo8aDI+DQo8YSBOQU1FPSJQcm9ibGVtIHJlcG9ydHMgZml4ZWQiPjwvYT5Qcm9ibGVtIHJlcG9ydHMgZml4ZWQ8L2gyPg0KPGJsb2NrcXVvdGU+DQo0ODA3OiBUZXh0LnNldEVjaG9DaGFyIHNwZWMgc2hvdWxkIHNheSAwIDw9IGNoYXIgPCAxMjggKDFHSjZDRE0pICANCjxicj40ODM3OiBKYXZhZG9jOiBDdXJzb3IgY29uc3RydWN0b3IgRVJST1JfTk9fSEFORExFUyBpcyBub3Qgc3BlYydlZCAoMUdLQTdROSkNCjxicj41NTc3OiBUZXh0IGphdmFkb2MgIA0KPGJyPjc1MjY6IE5vIHNwZWMgZm9yIERpc3BsYXkudXBkYXRlKCkgIA0KPGJyPjg1MTM6IEphdmFEb2MgZm9yIE1lbnUuYWRkTWVudUxpc3RlbmVyIGluY29ycmVjdCAgDQo8YnI+MTI4MjA6IEZpbmlzaGluZyBwcmV2aWV3IG9mIHRoZSByZWZhY3RvcmluZyBjb2RlIGNyYXNoZXMgRWNsaXBzZSAgDQo8YnI+MTQ0NjM6IEdQIG9wZW5pbmcgdHdvIGZpbGVzIGF0IHRoZSBzYW1lIHRpbWUgIA0KPGJyPjE1NDYwOiBDb29sQmFyIGRvYyB1bmNsZWFyL2luc3VmZmljaWVudCAgDQo8YnI+MTU5Mzk6IEtleUV2ZW50IGNoYXJhY3RlciBpcyBub3QgY29uc2lzdGVudCBiZXR3ZWVuIExpbnV4IGFuZCBXaW5kb3dzDQo8YnI+MTY4MTA6IE1vdXNlIHBvaW50ZXIgbm90IHVwZGF0ZSAgDQo8YnI+MTY4Mzc6IEtleXMgY29tcGxldGVseSBsb3N0ICANCjxicj4xNjg4MzogVmFyaWFibGUgc29ydGluZyBjaGFuZ2VzIHVuZXhwZWN0ZWRseSAgDQo8YnI+MTY4OTU6IEluLXBsYWNlIHRleHQgZmllbGRzIGFyZSB1bnVzYWJsZSAgDQo8YnI+MTcwMzY6IERpc3Bvc2luZyBhIENvb2xJdGVtIGlzIHRyaWdnZXJpbmcgYW4gYWN0aXZhdGlvbiBjYWxsYmFjay4gIA0KPGJyPjE3MTQ2OiBFZGl0b3IgUHJlZmVyZW5jZSBwYWdlIGJ1dHRvbSBsaXN0IGNsaXBwZWQgIA0KPGJyPjE3MTU0OiBWaWV3IHBhcnQgbG9zZXMgZm9jdXMgd2hlbiBvcGVuaW5nIGNvbnRleHQgbWVudSAgDQo8YnI+MTcyODk6IENvbWJvIGRvZXNuJ3QgdGFrZSBmb2N1cyBieSBjbGlja2luZyBvbiBpdCAoUGhvdG9uKSAgDQo8YnI+MTcyOTA6IE1vZGlmeSBNZXRob2QgUGFyYW1ldGVyczogd3JvbmcgZW5hYmxlbWVudCBvZiBidXR0b25zICANCjxicj4xNzUwNzogQUlYIEZpbGVEaWFsb2cgaXMgbm90IHJlc3BvbnNpdmUgaW4gc3RhbmQtYWxvbmUgZXhhbXBsZSAgDQo8YnI+MTc2MTM6IEFkZCBmcm9tIGxvY2FsIGhpc3Rvcnkgc2hvd3Mgbm90aGluZyBpbiByaWdodCBhbmQgbG93ZXIgcGFuZQ0KPGJyPjE3NjcwOiBDYW5ub3QgbW92ZSB0aHJvdWdoIFBsdWctaW4gQ29kZSBHZW5lcmF0aW9uIHBhZ2UgbGlzdCB3aXRoIGFycm93IGtleXMNCjxicj4xNzY5MjogSUFFIHdoZW4gZGVsZXRpbmcgbGluZSBpbiBKYXZhIEVkaXRvciAgDQo8YnI+MTc3NTI6IENhbm5vdCBzZWxlY3QgYSBub24tYm9sZCBmb250ICANCjxicj4xNzc4ODogU2NhbGUgd2l0aCBwcmVmZXJyZWQgc2l6ZSBpcyB1bnVzYWJsZSAobm8gcmFuZ2Ugb2YgbW90aW9uKSAgDQo8YnI+MTc4NDg6IEYxIGJ1aWxkLCBKVk0gdGVybWluYXRlZCBFeGl0IGNvZGUgMTM5ICANCjxicj4xNzkzNjogRWNsaXBzZSBsYXVuY2hlciBtdXN0IGxhdW5jaCBoZWFkbGVzcyBpbiBoZWFkbGVzcyBlbnZpcm9ubWVudHMNCjxicj4xODQzOTogQ3RybCtGNiBlZGl0b3Igc3dpdGNoaW5nIGlzIHVudXNhYmxlICANCjxicj4xODUwODogSmF2YWNvcmVkdW1wIHdoZW4gb3BlbmluZyB2ZXJ0aWNhbCBydWxlciBjb250ZXh0IG1lbnUgIA0KPGJyPjE4NTIxOiBDb29sYmFyIGxheW91dCBhbmQgY2hldnJvbiBidWcgIA0KPGJyPjE4NTQzOiBBbiBpbnZpc2libGUgY2hhcmFjdGVyIGlzIGFkZGVkIHdoZW4gdGhlICdXaW5kb3dzJyBrZXkgaXMgcHJlc3NlZA0KPGJyPjE4NjI1OiBUYWJiaW5nIGluIEphdmEgZWRpdG9yIHRha2VzIGN1cnNvciAgDQo8YnI+MTg2Mjk6IEdUSzogVW5hYmxlIHRvIHNlbGVjdCBkaWFsb2cgYnV0dG9ucyB3aXRoIG1vdXNlICANCjxicj4xODY0NTogUmVsZWFzZSBTV1Qgc291cmNlcyAmIGphdmFkb2MgaW4gZnV0dXJlIGJ1aWxkcyAgDQo8YnI+MTg3MzM6IENvbnRyb2xFeGFtcGxlOiBMaXN0IHdpZGdldCBub3QgYmVpbmcgcmVzaXplZCBwcm9wZXJseSAgDQo8YnI+MTg4MDQ6IEdQRiBzZXR0aW5nIGltYWdlIHRvIG1lbnUgaXRlbSAoUGhvdG9uKSAgDQo8YnI+MTg4Mzg6IExhdW5jaCBDb25maWd1cmF0aW9ucyBkaWFsb2cgY3JlZXBzIHVwICANCjxicj4xODg0MTogUXVlc3Rpb246IFdoYXQgZG9lcyAtRE1CQ1MgZG8/ICANCjxicj4xODkzMDogV3JvbmcgY29udGVudCBkaXNwbGF5ZWQgaW4gdGFicyBpbiB0aGUgTGF1bmNoIENvbmZpZ3VyYXRpb24gRGlhbG9nDQo8YnI+MTg5MzQ6IFNjcm9sbGJhcnMgc2hvdWxkIGJlIGRpc2FibGVkIGluIEltYWdlQW5hbHl6ZXIgZXhhbXBsZSAgDQo8YnI+MTkwNTc6IFByb2JsZW0gc2F2aW5nIGphdmEgZmlsZSB0aHJvdWdoIHBvcHVwIG1lbnUgIA0KPGJyPjE5MTE2OiBNaXNzaW5nIGFib3V0Lmh0bWwgaW4gc291cmNlIGRpcmVjdG9yeSBmb3IgZXhhbXBsZXMgIA0KPGJyPjE5MTY5OiBOUEUgb24gRW11bGF0ZWQgQ29vbEl0ZW0gY29uc3RydWN0b3IgIA0KPGJyPjE5MzQ1OiBUYXNrIFZpZXc6IE5vdCBjbGVhcmluZyBwcmlvcml0eSBpY29ucyAgDQo8YnI+MTkzOTQ6IEZhbHNlICJ1bnNhdmVkIGNoYW5nZXMiIG5vdGlmaWNhdGlvbiBmcm9tIGxhdW5jaCBjb25maWdzICANCjxicj4xOTUwMzogV2lkZ2V0IGluIG91dGxpbmVyIGdldHMgd3JhcHBlZC9jcm9wcGVkICANCjxicj4xOTU5NTogU3R5bGVkVGV4dCAtIHJlZHJhd1JhbmdlIG5vdCBjbGVhcmluZyBwcm9wZXJseSB3aGVuIGNsZWFyIGZsYWcgc2V0DQo8YnI+MTk2NjA6IFByZWZlcmVuY2UgcGFnZSBkb2VzIG5vdCBleHBhbmQgdG8gZml0IGFsbCB3aWRnZXRzICANCjxicj4xOTc2OTogSW50ZXJuZXQgRXhwbG9yZXIgYW5kIEhlbHAsIEVYQ0VQVElPTl9BQ0NFU1NfVklPTEFUSU9OICANCjwvYmxvY2txdW90ZT4NCg0KPGgxPg0KRWNsaXBzZSBQbGF0Zm9ybSBCdWlsZCBOb3Rlczxicj4NClNXVDwvaDE+DQpTV1QgQnVpbGQgMi4wIDA0MyAtIEZyaWRheSBNYXkgMzEsIDIwMDINCg0KPGgyPg0KPGEgTkFNRT0iUHJvYmxlbSByZXBvcnRzIGZpeGVkIj48L2E+UHJvYmxlbSByZXBvcnRzIGZpeGVkPC9oMj4NCjxibG9ja3F1b3RlPg0KNDY5MjogRW1wdHkgcG9wdXAgbWVudSBhcHBlYXJzIGluIE91dGxpbmUgdmlldyAoMUdFVDFCMSkgIA0KPGJyPjg4MjE6IE9wZW5pbmcgZWRpdG9ycyBoYXMgYmVjb21lIHZlcnkgc2xvdyAgDQo8YnI+MTU1NjU6IENvb2xiYXIgLSBtaW5pbXVtV2lkdGggbm90IGhvbm9yZWQgdW5kZXIgY2VydGFpbiBjb25kaXRpb25zICANCjxicj4xNjY4ODogU2VsZWN0aW9uIGJhY2tncm91bmQgb24gZW11bGF0ZWQgd2lkZ2V0cyBpcyB3cm9uZyAgDQo8YnI+MTcxNTA6IFN0cmFuZ2Ugc2VsZWN0aW9uIGJlaGF2aW91ciBpbiBKYXZhIEJyb3dzaW5nIFBlcnNwZWN0aXZlICANCjxicj4xNzE1NjogRGVsZXRlIGtleSBub3Qgd29ya2luZyBpbiBwYWNrYWdlIHZpZXcgIA0KPGJyPjE3MjI4OiBXZWlyZCBUcmVlIHNlbGVjdGlvbiBiZWhhdmlvdXIgIA0KPGJyPjE3MzU0OiBEb3VibGUgY2xpY2tpbmcgZXhwYW5kcyBhbmQgY29sbGFwc2VzIGl0ZW0gIA0KPGJyPjE3MzYzOiBUZXN0IEE0LjQgY2Fubm90IGVkaXQgYWN0aW9uIHNldCBpZCBpbiBwcm9wZXJ0aWVzIHZpZXcgIA0KPGJyPjE3NjgwOiBPdXRsaW5lIGRvZXNuJ3QgZXhwYW5kIHdoZW4gYWRkaW5nIG5ldyBtZXRob2QgIA0KPGJyPjE3ODI1OiBDb250cm9sRXhhbXBsZS0+VGV4dCBiZWVwcyB3aGVuIEkgY2hvb3NlIFNXVC5NVUxUSSAgDQo8YnI+MTc4MzE6IENvb2xiYXIgLSBjaGV2cm9uIG5vdCBhbHdheXMgZGlzcGxheWVkIHdoZW4gaXQgc2hvdWxkIGJlICANCjxicj4xODE2MDogIlNob3cgaW4gcGFja2FnZXMgdmlldyIgZG9lc24ndCBzY3JvbGwgdG8gc2VsZWN0aW9uICANCjxicj4xODIyOTogV2Fsa2JhY2sgd2hlbiBjbG9zaW5nIEltYWdlQW5hbHl6ZXIgIA0KPGJyPjE4MzY4OiBHZXQgcmlkIG9mIGFsbCBmcmFnbWVudC5wcm9wZXJ0aWVzICANCjxicj4xODM3NjogTm8gZXhlY3V0ZSBwZXJtaXNzaW9ucyBvZiBsaWJyYXJpZXMgIA0KPC9ibG9ja3F1b3RlPg0KDQo8aDE+DQpFY2xpcHNlIFBsYXRmb3JtIEJ1aWxkIE5vdGVzPGJyPg0KU1dUPC9oMT4NClNXVCBCdWlsZCAyLjAgMDQyIC0gVGh1cnNkYXkgTWF5IDMwLCAyMDAyDQoNCjxoMj4NCjxhIE5BTUU9IlByb2JsZW0gcmVwb3J0cyBmaXhlZCI+PC9hPlByb2JsZW0gcmVwb3J0cyBmaXhlZDwvaDI+DQo8YmxvY2txdW90ZT4NCjQ1MzM6IENoZWVzZSB3aGVuIHJlc2l6aW5nIHRvb2xiYXIgKDFGV0w5NDMpICANCjxicj40ODQxOiBTV1Qgc2FtcGxlIGltYWdldmlld2VyIG5vdGhpbmcgZGlzcGxheSBhdCBwaXhlbCBkYXRhIGFyZWEgKDFHS0VPVUUpDQo8YnI+NjczNTogQVdUL1NXVCAtIFN3aW5nIC8gU3d0IGludGVncmF0aW9uIDogSkNvbWJvQm94IGRvZXNuJ3Qgc2hvdyBjb3JyZWN0bHkNCjxicj4xMDk3MjogQ29yZSBkdW1wIGRyYWcgYW5kIGRyb3BwcGluZyBmcm9tIGlubGluZSB0ZXh0ICANCjxicj4xMjQ5ODogVW5hYmxlIHRvIGFkZCBFeHRlcm5hbCBKYXIgdXNpbmcgdGhlIEphdmEgUHJvamVjdCBXaXphcmQgIA0KPGJyPjE2MTc0OiBXcm9uZyBwb3B1cCBtZW51ICANCjxicj4xNjU1MzogU1dUX0FXVC5uZXdfUGFuZWwgZG9lcyBub3Qgd29yayAgDQo8YnI+MTY3OTE6IENhbid0IHNlbGVjdCBjaGVjayBib3hlcyAgDQo8YnI+MTcxOTk6IFRhYmxlIHdpZGdldCAtIG9ubHkgbGFzdCBjb2x1bW4gaGVhZGVyIGlzIGNsaWNrYWJsZSAgDQo8YnI+MTczNzU6IENoZWVzZSBvbiBKYXZhIFNjcmFwYm9vayBwYWdlIHJ1bGVyICANCjxicj4xNzM5MDogSlVuaXQgdGVzdGNhc2VzIHJlc3VsdCBmb3IgR3JhcGhpY3MgKDEgZXJyb3IsIDIgZmFpbHVyZXMpICANCjxicj4xNzU2NTogQWRkIEpSRSB2YWxpZGF0aW9uIG5vdCB3b3JraW5nICANCjxicj4xNzU2ODogRXJyb3IgZG9lc24ndCBkaXNhcGVhciB3aGVuIHN3aXRjaGluZyB0byBzb3VyY2UgZm9sZGVyIGxheW91dA0KPGJyPjE3NTc0OiBTdGF0dXMgbGluZSBjb250cmlidXRpb25zIGFwcGVhciB0d2ljZSAgDQo8YnI+MTc2Mzc6IFJlc2l6ZSBwcm9ibGVtIHdoZW4gZGlhYmxlaW5nIG92ZXJ2aWV3IHJ1bGVyIGluIEVkaXRvciAgDQo8YnI+MTc2NjI6IEluY29ycmVjdCBzdGF0dXMgZGlzcGxheSBpbiBuZXcgRmVhdHVyZSBXaXphcmQgIA0KPGJyPjE3OTE3OiBTaGlmdC1UYWIgZG9lcyBub3Qgd29yayAgDQo8YnI+MTgyMjM6IFRleHQgd2lkZ2V0IHdpdGggU1dULk1VTFRJIGhhcyBzdHJhbmdlIGJlaGF2aW9yIG9uIEdUSyAgDQo8L2Jsb2NrcXVvdGU+DQoNCjxoMT4NCkVjbGlwc2UgUGxhdGZvcm0gQnVpbGQgTm90ZXM8YnI+DQpTV1Q8L2gxPg0KU1dUIEJ1aWxkIDIuMCAwNDEgLSBUdWVzZGF5IE1heSAyOCwgMjAwMg0KDQo8aDI+DQo8YSBOQU1FPSJQcm9ibGVtIHJlcG9ydHMgZml4ZWQiPjwvYT5Qcm9ibGVtIHJlcG9ydHMgZml4ZWQ8L2gyPg0KPGJsb2NrcXVvdGU+DQo0Mzk4OiBWaXN1YWwgQ29vcmRpbmF0aW9uOiBCb3JkZXJzICgxRlNHT05HKSAgDQo8YnI+NDQxMTogRENSIC0gU3VwcG9ydCBwcmludGluZyAoMVBROFFDSykgIA0KPGJyPjQ0MjY6IFNjcm9sbEJhciAtIENhbid0IHF1ZXJ5IHNpemUgKDFGRFZQMjMpICANCjxicj40NDMxOiBGb2xkZXIgdGFiIGRvZXMgbm90IGdldCBmb2N1cyAoMUZJR0k5NSkgIA0KPGJyPjQ0Mzc6IFRyZWUgS2V5Ym9hcmQgU3VwcG9ydCAoMUZPTFpQVCkgIA0KPGJyPjQ0NTI6IE1lbnVJdGVtOiBzZXRJbWFnZSBkb2VzIG5vdCBzaG93IGltYWdlIG9uIG1lbnUgKDFGR05QOFUpICANCjxicj40NDY5OiBJbmNvbnNpc3RlbmNpZXMgYmV0d2VlbiBzaW5nbGUgbGluZSBUZXh0IGFuZCBSaWNoVGV4dCB3aWRnZXRzICgxRksxUlJNKQ0KPGJyPjQ0NzQ6IE5vdCBzdXBwb3J0dGluZyBXaW5kb3dzIEFjY2Vzc2liaWxpdHkgU3RhbmRhcmQ/ICgxRk0wSUZTKSAgDQo8YnI+NDQ5MDogRm9udHMgaW4gZXhhbXBsZXMgYXBwZWFyIHRvbyBiaWcgKDFGT01DV1EpICANCjxicj40NDk2OiBEQ1IgLSBDb250b3VyIG1vdXNlIG1pZGRsZSBidXR0b24gZG9lc24ndCB3b3JrICgxRlJFQVM0KSAgDQo8YnI+NDUwMzogRm9udERpYWxvZyBpcyBtaXNzaW5nIGZvbnRzICgxRlNNUlYwKSAgDQo8YnI+NDUyNjogU2V2ZXJlIC0gRGVsZXRlIGtleSBpcyBub3QgcmVkaXJlY3RlZCB0byBlZGl0b3IgKDFGVlhEU1QpICANCjxicj40NTI5OiBDbG9zaW5nIGV4dGVybmFsIE1TIFdvcmQgbWFrZXMgaW4tcGxhY2UgTVMgV29yZCBkaXNhcHBlYXIgKDFGV0c5QVIpDQo8YnI+NDUzNDogRmxhc2hpbmcgd2hlbiBjb21wdXRlU2l6ZSBjYWxsZWQgb24gVG9vbGJhciAoMUZXTEQxRSkgIA0KPGJyPjQ1NDU6IE5vIE9TLkdldEtleVN0YXRlIGZ1bmN0aW9uIG9uIG1vdGlmICgxRlpRT1pNKSAgDQo8YnI+NDU1MDogSlVuaXQgdGVzdHMgYXNzdW1lcyBib3VuZGFyeSBjb25kaXRpb24gd2hpY2ggaXMgc2V0dGluZyBkZXBlbmRhbnQgKDFHMExRS0QpDQo8YnI+NDU1MjogQWRvYmUgZG9lc24ndCBsaWtlIEltYWdlRGF0YS4uLiAoMUcwWkJFMCkgIA0KPGJyPjQ1NjM6IE5lZWQgc3VwcG9ydCBmb3IgKi54cG0gYW5kICoucG5nIGltYWdlIGZpbGUgZm9ybWF0cyAoMUczSFdTQSkNCjxicj40NjM2OiBUb29sdGlwcyBub3Qgd29ya2luZyBvbiBMaW51eCAoMUdDTjRGSykgIA0KPGJyPjQ2NzI6IERDUiAtIEluY2x1ZGUgImJlZ2luaW5nIC8gZW5kICIgYXJyb3dzIHRvIHNlbGVjdCBmaWxlcyAoMUdFRllDRykNCjxicj40Njc5OiBDb2xvdXIgZ3JhZGllbnQgb2Ygdmlld3MgaXMgbm90IGdyYWR1YWwgKDE2Yml0IGNvbG9yIGRlcHRoKSAoMUdFTFdTTykNCjxicj40Njk5OiBEQ1IgLSBvdXRzdGFuZGluZyBpc3N1ZSBmb3IgY3VzdG9tZXItIENoYW5naW5nIGN1cnNvciBkdXJpbmcgZHJhZyBvcGVyYXRpb24gKDFHRVRDOFUpDQo8YnI+NDcwMzogV2luTUUgLSBEaXNhYmxlZCBpY29ucyBpbiB0YWJiZWQgZm9sZGVyIGRvIG5vdCBkaXNwbGF5IHByb3Blcmx5LiAoMUdFV1hMSSkNCjxicj40NzA2OiBTdGFja092ZXJmbG93IHJlc2l6aW5nIFdvcmtiZW5jaCB3aW5kb3cgKDFHRVdMU1UpICANCjxicj40NzA4OiBGQVRBTCBYIGVycm9yICgxR0YwN0hOKSAgDQo8YnI+NDcwOTogR1AgcnVubmluZyAoIEVjbGlwc2UgXiAyICkgKDFHRVo5VVIpICANCjxicj40NzExOiBOYXZpZ2F0b3IgbWVzc2VkIHVwIHdoZW4gbWlkaSh3L0RCQ1MpIGluIGl0IC1DYW4ndCBjcmVhdGUgdmlldyAoMUdFWk5WQykNCjxicj40NzI4OiBXaW5kb3dzIHdpdGggdGFiIHBhZ2VzIHNob3VsZCBhbGxvdyBDdHJsLVRhYiBzd2l0Y2hpbmcgKDFHRklVRzUpDQo8YnI+NDc4NTogRENSIC0gQ3VzdG9tIG5vdGVib29rIHNjcm9sbGluZyBub3Qgb3B0aW1hbCAoMUdJOTdWWikgIA0KPGJyPjQ4Mzk6IFRhYkZvbGRlciBtbmVtb25pYyBwcm9ibGVtICgxR0tBUEtLKSAgDQo8YnI+NDg0MDogSGVicmV3OiBjYW5ub3QgcGFzdGUgZnJvbSBleHRlcm5hbCBmaWxlIGludG8gamF2YSBlZGl0b3IgKDFHS0NXVlgpDQo8YnI+NDg1MTogUHJpbnQgaWdub3JlcyBwcmludCB0byBmaWxlIG9wdGlvbiAoMUdLWEMzMCkgIA0KPGJyPjQ4Njc6IFBnTWVtRmx1c2goKSBjb25zaWRlcmVkIGV4cGVuc2l2ZSAoMUdMRUVKQykgIA0KPGJyPjU2OTc6ICpQbGVhc2UqIG1ha2UgU1dUIHVzZSBHVEsrIGluc3RlYWQgb2YgTW90aWYgIA0KPGJyPjgzNDY6IFdvcmtiZW5jaCB3aWxsIG5vdCBzdGFydCAgDQo8YnI+OTIxNzogSW50ZXJuYWwgZXJyb3IgYXQgb3BlbiB0aGUgcGFja2FnZSB2aWV3ICANCjxicj45NDkxOiAxR1JUUlhROiBXU1dCOldvcmtiZW5jaCAyLjAgUHJvYmxlbS0gQXJyYXlJbmRleE91dE9mQm91bmRzRXhjZXB0aW9uIHdpdGggTXVsdGlQYWdlRWRpdG9yUGFydA0KPGJyPjExMjA0OiBTb21lIEFjdGl2ZVggY29udHJvbCBjYW4gbm90IGFjY2VwdCBrZXkgaW5wdXQuICANCjxicj4xMTQzNjogUmVxdWVzdCBmb3IgcHVibGljIGludGVyZmFjZSB0byBjYWxsICJVSURlYWN0aXZhdGUoKSIgb2YgIElPbGVJblBsYWNlT2JqZWN0DQo8YnI+MTE0OTg6IFN0eWxlZFRleHQgZG9lcyBub3QgYWx3YXlzIHJlZHJhdyB3aGVuIHRoZSBsaW5lIHN0eWxlIGNoYW5nZXMNCjxicj4xNDg0NjogQWNjZXNzaWJpbGl0eTogZ2V0TG9jYXRpb24gZG9lcyBub3QgcG9zaXRpb24gWFAgTWFnbmlmaWVyICANCjxicj4xNTIxODogUGxhdGZvcm0gZG9lcyBub3QgcmVjb2duaXplIHRoZSBHVUkgLSAyMDAyMDUwMiAgDQo8YnI+MTU0NjY6IEltYWdlRGF0YS5ibGl0IHRocm93cyBBcnJheUluZGV4T3V0T2ZCb3VuZHMgRXhjZXB0aW9uICANCjxicj4xNTU0ODogJ1gnIGNsb3NlIGJveCBvbiB0YWIgaGlkZGVuIGJ5IGFycm93cyAgDQo8YnI+MTU1NjQ6IGphdmF3LmV4ZSBoYXMgZ2VuZXJhdGVkIGVycm9ycyBhbmQgd2lsbCBiZSBjbG9zZWQgYnkgd2luZG93cyAgDQo8YnI+MTU2NTM6IFRhYiBoYWx0cyBvbiBDQ29tYm8gb2JqZWN0cyAgDQo8YnI+MTYwOTQ6IENoZWVzZSBvbiBDVGFiRm9sZGVyIHdoZW4gcmVzaXppbmcgIA0KPGJyPjE2MjAwOiBUcmFja2VyIGxlYXZlcyBjaGVlc2UgIA0KPGJyPjE2MzQ1OiBKVk0gdGVybWluYXRpb24gd2hlbiBhdHRlcG10aW5nIHRvIHJ1biBVcGRhdGUgTWFuYWdlciAgDQo8YnI+MTY0NTg6IFRyeWluZyB0byBmcmVlIGEgR2RrRXZlbnQ6IHBvaW50ZXI9TlVMTCAgDQo8YnI+MTY1NDk6IENhbm5vdCBuYXZpZ2F0ZSB0YWJiZWQgbm90ZWJvb2sgd2l0aCBrZXlib2FyZCAgDQo8YnI+MTY1NTc6IFRhYiBkb2VzIG5vdCBtb3ZlIGN1cnNvciBiZXR3ZWVuIHRleHQgZmllbGRzICANCjxicj4xNjU2NTogVHlwZWQgdGV4dCBpcyBsb3N0ICANCjxicj4xNjU3NjogQUNDOiBDaGVja2JveGVzIGluIGxpc3RzIGFyZSBub3QgcmVhbCBjaGVja2JveGVzICANCjxicj4xNjgyODogQ1RhYkZvbGRlciBmbGFzaGluZyB0b29sdGlwICANCjxicj4xNjkyNzogRXh0ZXJuYWwgcHJvZ3JhbXMgc3VwcG9ydCBvbiBQaG90b24gIA0KPGJyPjE2OTU3OiBUcmVlSXRlbS5zZXRGb3JlZ3JvdW5kQ29sb3IoKSBkb2Vzbid0IHdvcmsgIA0KPGJyPjE2OTY3OiBTdHJhbmdlIHNjcm9sbCBiZWhhdmlvciBpbiBwYWNrYWdlIGRpYWxvZyAgDQo8YnI+MTY5OTU6IEhvdmVySGVscCBleGFtcGxlIGRvZXMgbm90IGNyZWF0ZSBPTl9UT1AgU2hlbGwgZm9yIHRvb2x0aXBzICANCjxicj4xNzAyMjogU1dUIExheW91dHMgZXhhbXBsZSAtIG1pc3Npbmcgd2luZG93IHRpdGxlICANCjxicj4xNzA5MDogU3R5bGVkVGV4dCBzZWxlY3RzIHRleHQgd2hlbiBtZW51IGlzIHNob3dpbmcgIA0KPGJyPjE3MTgzOiBJY29uIGluIHdpemFyZCBiYW5uZXIgY2xpcHBlZCAgDQo8YnI+MTcyMDg6IExvbmcgb3BlcmF0aW9ucyBhcmUgYmVpbmcgbW9kYWwuICANCjxicj4xNzMwNTogU2VhcmNoIERpYWxvZzogSmF2YSBQYWdlIGNsaXBwZWQgIA0KPGJyPjE3MzIwOiBTZWFyY2ggZGlhbG9nIGZyZWV6ZXMgRWNsaXBzZSAgDQo8YnI+MTczNjg6IDQgVG9vbGJhciBpY29ucyBwdXNoZWQgb2ZmIHRoZSB0b29sYmFyIHdheSB0byB0aGUgcmlnaHQgIA0KPGJyPjE3NDg4OiBJbWFnZSBTdXBwb3J0IGluIFNXVCAtIEZBUSAoMUc1WjFLUykgIA0KPGJyPjE3NDk3OiBGaWxlRGlhbG9nIG9wZW4oKSByZXR1cm5zIHdyb25nIHJlc3VsdCAgDQo8YnI+MTc2MzI6ICJDb2xvciBCdXR0b24iIGRvZXNuJ3QgdXBkYXRlICANCjxicj4xNzgwMjogTW92aW5nIGEgc2FzaCByZXF1aXJlcyBhbiBleHRyYSBjbGljayB0byB0YWtlIGVmZmVjdCAgDQo8YnI+MTc4MTE6IFR3byBtZW51IGJhciBpdGVtcyBoaWdobGlnaHRlZCBhdCB0aGUgc2FtZSB0aW1lICANCjxicj4xNzgxNjogTWVudSBhcHBlYXJzIHRoZW4gZGlzc2FwcHJlYXJzIHdpdGggY2xpY2sgYWZ0ZXIgQWx0LiAgDQo8YnI+MTc4MzI6IFZlcnRpY2FsIFNjcm9sbGJhciBjbGlwcGVkICANCjxicj4xNzgzNDogSmF2YURvYyBBUEkgYmFkIGZvciBJbWFnZSAgDQo8YnI+MTc4MzU6IFNtYWxsdGFsayBjb2RlIGFyb3VuZCA6KSAgDQo8YnI+MTc5Mjg6IE5QRSBvbiBhZGRyZXNzYm9vayBleGFtcGxlICANCjxicj4xNzkzMjogRW11bGF0ZWQgQ29vbGJhciBkbyBub3QgcmVzaXplIHdoZW4gdGhlIGxhc3QgaXRlbSBvbiB0aGUgcm93IGlzIHJlbW92ZWQNCjxicj4xNzkzMzogRW11bGF0ZWQgQ29vbGJhciBjaGV2cm9uIHRvbyBuYXJyb3cgb24gUGhvdG9uICANCjxicj4xODAwNTogQnVzeUluZGljYXRvciBzaG91bGQgY2hlY2sgYXJncyAgDQo8L2Jsb2NrcXVvdGU+DQoNCjxoMT4NCkVjbGlwc2UgUGxhdGZvcm0gQnVpbGQgTm90ZXM8YnI+DQpTV1Q8L2gxPg0KU1dUIEJ1aWxkIDIuMCAwNDAgLSBUdWVzZGF5IE1heSAyMSwgMjAwMg0KDQo8aDI+DQo8YSBOQU1FPSJQcm9ibGVtIHJlcG9ydHMgZml4ZWQiPjwvYT5Qcm9ibGVtIHJlcG9ydHMgZml4ZWQ8L2gyPg0KPGJsb2NrcXVvdGU+DQozNTU0OiBUUDEyNTogd2VpcmQgdGFiIG9yZGVyIGluIGNyZWF0ZSBwcm9qZWN0IHdpemFyZCAoMUc4M1ZQOCkgIA0KPGJyPjQ0MjQ6IFRhYmxlIGRyYXdzIGEgc3RyYXkgcGl4ZWwgaW4gdG9wIGxlZnQgY29ybmVyICgxRlM5UUJRKSAgDQo8YnI+NDQ3NjogTm8gc3luY0V4ZWMgcnVubmFibGVzIHJ1biBkdXJpbmcgc2Nyb2xsaW5nICgxRk1HRzJYKSAgDQo8YnI+NDUyODogTmVlZCBGb2N1c0luIGV2ZW50IGZvciBPbGVDbGllbnRTaXRlICgxRlcyUzAwKSAgDQo8YnI+NDU4NjogVXNlIGNoZWNrV2lkZ2V0KCkgbW9yZSBvZnRlbiAoMUc4MFVSUSkgIA0KPGJyPjQ2MDk6IEZpbGxMYXlvdXQgc2hvdWxkIGhhdmUgRmlsbExheW91dCh0eXBlKSBjb25zdHJ1Y3RvciAoMUc5WEJQSSkNCjxicj40Njk0OiBFZGl0b3IgTmFtZSBpcyBtaXNzaW5nIGZyb20gdGFiICgxR0VUOTNKKSAgDQo8YnI+NDcyNjogQ09ERSBDSEFOR0VTIEFGVEVSIFRIRSBGUkVFWkUgKDFHRjlZRjApICANCjxicj40Nzg4OiBGZWF0dXJlIHJlcXVlc3Q6IHN0eWxlZCB0cmVlIGl0ZW1zICgxR0lHSks0KSAgDQo8YnI+NDc4OTogWFAgLSBMb29rIGFuZCBmZWVsIHByb2JsZW1zICgxR0lHR0tNKSAgDQo8YnI+NDgzMTogRE5EIG5vdCB3b3JraW5nIHByb3Blcmx5ICgxR0pZT1pDKSAgDQo8YnI+NDgzODogQ2FuIGNyZWF0ZSBGb250RGF0YSB3aXRoIG51bGwgbmFtZSBzdHJpbmcgKDFHS0E5M1ApICANCjxicj40OTQxOiBGb2N1cyBjYWxsYmFjayBkdXJpbmcgT2xlQ2xpZW50U2l0ZSBkZWFjdGl2YXRlIGNhbGwgIA0KPGJyPjQ5NDI6IENvbWJvIHNlbGVjdGlvbiBpbmRleCBzaG91bGQgbW92ZSB3aGVuIHVwcGVyIGl0ZW0gcmVtb3ZlZCAoMUdMR0E0MSkNCjxicj41OTEwOiBUb29sYmFyIHdpdGggYWxsIGl0ZW1zIGRpc2FibGVkIHN0aWxsIHNob3dzIHVwIGluIHRhYiBvcmRlciAgDQo8YnI+NTkzNjogQ29tcG9zaXRlLnNldFRhYkxpc3Qgc2hvdWxkIGFjY2VwdCBudWxsICANCjxicj42MTk4OiBGb2N1cyBsb3N0IGluIHRhYiBmb2xkZXIgd2hlbiBzd2l0Y2hpbmcgcGFnZXMgIA0KPGJyPjY0MDY6IEogSU1FIHBvc2l0aW9uaW5nIGluY29ycmVjdA0KPGJyPjY1MTQ6IENvZGUgYXNzaXN0IGJlaGF2ZXMgZGlmZmVyZW50bHkgb24gTGludXggIA0KPGJyPjY4NTY6IERlZmF1bHQgYnV0dG9ucyBkaWZmZXJlbnQgb24gVmFyaWFibGUgZGlhbG9nICANCjxicj44MTYyOiBBY2Nlc3NpYmlsaXR5OiBmb2N1cyBnb2VzIG1pc3NpbmcgaW4gQ1ZTIGxvY2F0aW9uIHdpemFyZCAgDQo8YnI+ODc5MTogT3ZlcmFnZ3Jlc3NpdmUgZm9jdXMgZ3JhYmJpbmcgIA0KPGJyPjkxNDE6IFdvcmtCZW5jaC0+UHJlZmVyZW5jZSBkaWFsb2cncyBidXR0b25zIGZvbnQgaXMgdG9vIHNtYWxsLiAgDQo8YnI+OTI4NzogQ29tYm8uc2V0VGV4dCBkb2VzIG5vdCB3b3JrDQo8YnI+MTA0OTE6IEJvbGQgYnV0dG9uIHdpbGwgbm90IGJvbGQgdGV4dCBpbiBTV1QgVGV4dEVkaXRvciBFeGFtcGxlICANCjxicj4xMTA3NDogRXZlbnRUYWJsZS5zZW5kRXZlbnQgc2hvdWxkIHByb2JhYmx5IHVzZSB0cnkvZmluYWxseSAgDQo8YnI+MTEzNDk6IEVkaXRvciBUYWJzIHNob3VsZCBmaWxsIHRvIHRoZSByaWdodC4gIA0KPGJyPjExMzY5OiBDb29sYmFyIGZlYXR1cmUgcmVxdWVzdHMgIA0KPGJyPjExNTE2OiBWaWV3Rm9ybSBzaG91bGQgb3ZlcnJpZGUgY29tcHV0ZVRyaW0NCjxicj4xMTczODogZ3Jvd2luZyBzdGF0dXMgYmFyDQo8YnI+MTE4NDc6IE9MRSBFZGl0b3IgcHJldmVudHMgbmF2aWdhdGlvbiB3aXRob3V0IGtleXMgIA0KPGJyPjEyMzk4OiBBY2Nlc3NpYmlsaXR5IHByb2JsZW1zICANCjxicj4xMjY0MTogRXJyb3IgaW4gLmNsYXNzcGF0aCBmb3IgUGhvdG9uICANCjxicj4xMjkwNDogQWNjZXNzaWJsZSByZXNpemluZyBvZiBWaWV3cyBzaG91bGQgbW92ZS9jaGFuZ2UgdGhlIERpc3BsYXkncyBDdXJzb3INCjxicj4xMjk3MjogTm90aWNlZCBpbmNyZWFzZWQgbnVtYmVyIG9mIEVjbGlwc2UgY3Jhc2hlcyAgDQo8YnI+MTM2MjI6IERDUiAtIG5lZWQgYWJpbGl0eSB0byBjYW5jZWwgd2luZG93IHN5c3RlbSBzaHV0ZG93bg0KPGJyPjE0NDQ5OiBbTTVdIGVycm9yIGJyaW5naW5nIHVwIENvZGUgRm9ybWF0dGVyIHBhZ2UgIA0KPGJyPjE0NTQ2OiBUYWJsZUNvbHVtbiBhbGlnbm1lbnQgcHJvYmxlbSB3aXRoIE1vdGlmICANCjxicj4xNDY1NjogUmVwYWludCBvZiB3aW5kb3cgZG9lcyBub3Qgd290ayB3aXRoIElNRSB1cA0KPGJyPjE0ODAxOiBNbmVtb25pYyBjaGFyYWN0ZXIgZG9lc24ndCB3b3JrIG9uIFRhYkZvbGRlciBvbiBRTlggIA0KPGJyPjE1MTI0OiBOUEU6IExhYmVsIERlY29yYXRpb25zIHByZWZlcmVuY2UgcGFnZSAgDQo8YnI+MTUxMzQ6IE9wZW4gVHlwZSBkaWFsb2cgaGFzIHdyb25nIGluaXRpYWwgZm9jdXMgIA0KPGJyPjE1MTcyOiBmb2N1cyBub3Qgb24gdGV4dCBmaWVsZCBmb3IgT3BlblR5cGVEaWFsb2cgIA0KPGJyPjE1MjI0OiBGaWxlRGlhbG9nIGRvZXMgbm90IHJldHVybiB0aGUgZmlsZSBzZWxlY3RlZCBvbiBQb2NrZXRQQyAgDQo8YnI+MTUyMzc6IENvb2xiYXIgLSBjb3JydXB0cyB3cmFwIGxheW91dCB3aGVuIGl0ZW1zIGRlbGV0ZWQgIA0KPGJyPjE1NTEzOiBDQ29tYm8uc2V0VG9vbHRpcFRleHQoKSBkb2Vzbid0IHdvcmsgIA0KPGJyPjE1NTE2OiBHUCAtIEVjbGlwc2UgY3Jhc2hlZCAgDQo8YnI+MTU1NzU6IFRyZWUgd2l0aCBjaGVja2JveCBpdGVtcyBhcmUgbm90IGFjY2Vzc2libGUgIA0KPGJyPjE1NjEzOiBDb3B5L3Bhc3RlIGluc2VydHMgTlVMTCAgDQo8YnI+MTU3MDU6IEVkaXRvciB3aXRoIGZvY3VzLCB0YWIgdGV4dCBkaXNhcHBlYXJzIHNvbWV0aW1lcw0KPGJyPjE1ODcyOiBFZGl0b3IgYXJlYSBmcmFtZSBzaG91bGQgYWxpZ24gd2l0aCBvcGVuIGVkaXRvcidzLCBleGNsdWRpbmcgZHJvcCBzaGFkb3cNCjxicj4xNTk4OTogQ29vbGJhciB3YWxrYmFjayB3aGVuIGFkZGluZyBpdGVtDQo8YnI+MTYwNjk6IENhbid0IHNlZSBzb3VyY2UgaW4gaW1wb3J0ZWQgYmluYXJ5IFNXVCAgDQo8YnI+MTYyMTA6IENvcmUgRHVtcCBPY2N1cnJlZCB3aGlsZSBpbiBPcGVuIFR5cGUgZGlhbG9nICANCjxicj4xNjI0NTogQ1RhYkZvbGRlciAtIHRvb2x0aXBzIGFuZCBhcnJvd2luZyBhcm91bmQNCjxicj4xNjI4MTogRWNsaXBzZSBkb2VzIG5vdCBjb21lIHVwDQo8YnI+MTYyOTc6IFdyb25nIHRhYiBvcmRlciBpbiBuZXdlciBidWlsZHMNCjxicj4xNjMxODogQ2FuJ3QgYWN0aXZhdGUgdmlld3M7IGxvc2luZyBldmVudHMNCjxicj4xNjQ2NTogU3RhY2sgT3ZlcmZsb3cgd2hlbiBpbXBvcnRpbmcgYSBwcm9qZWN0DQo8YnI+MTY1MjM6IFVuYWJsZSB0byBkb3VibGUtY2xpY2sNCjxicj4xNjUyNTogRWNsaXBzZSBkb2VzIG5vdCBsYXlvdXQgcHJvcGVybHkNCjwvYmxvY2txdW90ZT4NCg0KPGgxPg0KRWNsaXBzZSBQbGF0Zm9ybSBCdWlsZCBOb3Rlczxicj4NClNXVDwvaDE+DQpTV1QgQnVpbGQgMi4wIDAzOSAtIFR1ZXNkYXkgTWF5IDE0LCAyMDAyDQoNCjxoMj4NCjxhIE5BTUU9IlByb2JsZW0gcmVwb3J0cyBmaXhlZCI+PC9hPlByb2JsZW0gcmVwb3J0cyBmaXhlZDwvaDI+DQo8YmxvY2txdW90ZT4NCjYxMDM6IE1lbnUgbW5lbW9uaWNzIGRvbid0IHdvcmsgd2hlbiB0b29sYmFyIGhhcyBmb2N1cyAgDQo8YnI+ODgwNTogQ29udGV4dCBtZW51cyBhbmQgZmluZGluZyByZWZlcmVuY2VzIHRvIG1ldGhvZHMgIA0KPGJyPjE0ODIzOiBEcmFnJkRyb3A6IG5lZWQgd2F5IHRvIHNldCB0aGUgZGVmYXVsdCBiZWh2YWlvdXIgb2YgYSBkcm9wIG8gIA0KPGJyPjE1MDU1OiBDb2x1bW4gSGVhZGVyIEhlaWdodCBpbiBhIFRhYmxlIG9yIFRhYmxlIFRyZWUgU1dUIHdpZGdldCAgDQo8YnI+MTUyNTM6IExpbnV4IEdUSyAyIGxpYnJhcnkgbm90IGZvdW5kICANCjxicj4xNTI3NDogQ2FuJ3QgYWRkIGV4dGVybmFsIGphciBpbiBMaW51eC1HVEsgdmVyc2lvbiAgDQo8YnI+MTU2MDM6IFByZWZlcmVuY2UgcGFnZSBubyBsb25nZXIgcmVzaXplcyB0byBmaXQgY29udGVudHMgIA0KPGJyPjE1NjM0OiBUYWJsZSBub3QgYWN0aW5nIGxpa2UgbGlzdCB3aGVuIGxhc3QgY29sdW1uIGRlbGV0ZWQgIA0KPGJyPjE1NjM3OiBDaGVlc2UgaW4gVGFibGUgd2hlbiBzZXR0aW5nIGNvbHVtbiBpbWFnZSAgDQo8YnI+MTU2NDM6IENoZWVzZSBpbiBUYWJsZSB3aGVuIGNoYW5naW5nIGZvbnQgIA0KPGJyPjE1NzA1OiBFZGl0b3Igd2l0aCBmb2N1cywgdGFiIHRleHQgZGlzYXBwZWFycyBzb21ldGltZXMgIA0KPC9ibG9ja3F1b3RlPg0KDQo8aDE+DQpFY2xpcHNlIFBsYXRmb3JtIEJ1aWxkIE5vdGVzPGJyPg0KU1dUPC9oMT4NClNXVCBCdWlsZCAyLjAgMDM4IC0gVHVlc2RheSBNYXkgNywgMjAwMg0KDQo8aDI+DQo8YSBOQU1FPSJQcm9ibGVtIHJlcG9ydHMgZml4ZWQiPjwvYT5Qcm9ibGVtIHJlcG9ydHMgZml4ZWQ8L2gyPg0KPGJsb2NrcXVvdGU+DQo2MzkxOiBEaXNwbGF5LmdldEFjdGl2ZVNoZWxsKCkgY2FuIGFuc3dlciB3cm9uZyB2YWx1ZSAgDQo8YnI+NzE3MDogVGFiIHNwYWNlIHNpemUgcHJvYmxlbSAgDQo8YnI+ODU0MjogQ2xvc2UgcGVyc3BlY3RpdmUgd2l0aCBtb3VzZSBpc24ndCBwb3NzaWJsZSAgDQo8YnI+ODU5MTogRWRpdG9yIHRhYnMgc2hvdWxkIHNjcm9sbCBhdXRvbWF0aWNhbGx5IHRvIGZpbGwgYXZhaWxhYmxlIHRhYiBzcGFjZQ0KPGJyPjg2NDg6IFN0eWxlZFRleHQgLSBDYXJldCBjYW4gYmUgaGlkZGVuIHVuZGVyIHNjcm9sbGJhciAgDQo8YnI+MTAyNjM6IEVkaXRvciBrZWVwcyBzY3JvbGxpbmcgYWZ0ZXIgbW91c2UgdXAgIA0KPGJyPjEyMjI2OiBTb2xhcmlzIC0gY2FuJ3QgY29weSBmaWxlIGludG8gc2FtZSBkaXJlY3RvcnkgIA0KPGJyPjEyMzYwOiBUcmF2ZXJzZUV2ZW50IGUuZG9pdCBkb2Vzbid0IHR1cm4gb2ZmIG9uIFRhYkZvbGRlciAgDQo8YnI+MTI5NTI6IEFsdCt7Y2hhcn0gZ2V0cyBpbnNlcnRlZCBhcyB0ZXh0ICANCjxicj4xMzYxNDogSkZhY2UgVGFibGVzIGhhdmUgYW4gZXh0cmEgY29sdW1uICANCjxicj4xMzY1MTogUHJpbnRlZCBvdXRwdXQgaXNzdWVzICANCjxicj4xMzcyNTogUmV2ZXJ0IGlzIG11Y2ggc2xvd2VyIHRoYW4gY2xvc2UgYW5kIHJlLW9wZW4gaW4gamF2YSBlZGl0b3IuICANCjxicj4xNDQzMTogVGFibGVWaWV3ZXIgaW5jb25zaXN0ZW50IHdoZW4gY2xpY2tpbmcgb2ZmIG9mIGl0ZW0gbGlzdCAgDQo8YnI+MTQ4NjY6IFNoaWZ0LXNlbGVjdGlvbiBkb2Vzbid0IHdvcmsgaW1tZWRpYXRlbHkgYWZ0ZXIgcmVzdGFydCAgDQo8YnI+MTQ4ODA6IENvbHVtbiByZXNpemUgcHJvYmxlbXMvY2hlZXNlICANCjxicj4xNDkwMjogRXhlY3V0YWJsZSBsYXVuY2hlciBkb2VzIG5vdCByZXN0YXJ0ICANCjxicj4xNDkzNTogRW11bGF0ZWRXaWRnZXRUZXN0cyBmYWlsIG9uIExpbnV4ICANCjxicj4xNDkzNzogTGF1bmNoIGZyb20gTmV3IE9mZmljZSBEb2N1bWVudCBoYW5ncyB1bnRpbCBFY2xpcHNlIGV4aXRzLiAgDQo8YnI+MTQ5NjQ6IFN0eWxlZFRleHQgLSBhZGQgbmV3IEFQSSBmb3IgcmVwbGFjaW5nIHN0eWxlIHJhbmdlcyAgDQo8YnI+MTQ5ODE6IEZvY3VzIG5vdCBzZXQgYW55bW9yZSAgDQo8YnI+MTUwNTc6IGdldFN5c3RlbUNvbG9yKFNXVC5DT0xPUl9XSURHRVRfRk9SRUdST1VORCkgYWx3YXlzIHJldHVybnMgYmxhY2sNCjxicj4xNTExNTogcmVtb3ZlQ29sdW1uIGFyZSBicm9rZW4gaW4gRW11bGF0ZWQgVGFibGUgIA0KPGJyPjE1MTQxOiBUYWIgaXMgY2F1Z2h0IGJ5IHJlYWQgb25seSB0ZXh0ICANCjxicj4xNTE1MDogUHJvZ3Jlc3MgYmFyIGJlaGF2ZXMgZXJyYXRpY2FseQ0KPGJyPjE1MjA4OiBTdHlsZWRUZXh0IC0gdGV4dCBjaGFuZ2UgZXZlbiBtZWNoYW5pc20gcG9vcmx5IGRvY3VtZW50ZWQgIA0KPGJyPjE1MzQ4OiBHUEYgaW4gT1MuTW92ZU1lbW9yeVcgIA0KPC9ibG9ja3F1b3RlPg0KDQo8aDE+DQpFY2xpcHNlIFBsYXRmb3JtIEJ1aWxkIE5vdGVzPGJyPg0KU1dUPC9oMT4NClNXVCBCdWlsZCAyLjAgMDM3IC0gVHVlc2RheSBBcHJpbCAzMCwgMjAwMg0KDQo8aDI+DQo8YSBOQU1FPSJMSUJSQVJZIExPQ0FUSU9OIENIQU5HRSI+PC9hPkxJQlJBUlkgTE9DQVRJT04gQ0hBTkdFPC9oMj4NCg0KQXMgb2YgdGhpcyBidWlsZCwgbGlicmFyaWVzIGFyZSBubyBsb25nZXIgaW4gdGhlIG9yZy5lY2xpcHNlLnN3dCBwbHVnaW4uDQoNCjxwPkxpYnJhcmllcyBjYW4gbm93IGJlIGZvdW5kIGluIHRoZSBhc3NvY2lhdGVkIHdpbmRvd2luZyBzeXN0ZW0gZnJhZ21lbnQgd2hpY2ggdG8gZGF0ZSBhcmU6DQo8dWw+DQo8bGk+b3JnLmVjbGlwc2Uuc3d0LndpbjMyIA0KPGxpPm9yZy5lY2xpcHNlLnN3dC5tb3RpZg0KPGxpPm9yZy5lY2xpcHNlLnN3dC5waG90b24NCjxsaT5vcmcuZWNsaXBzZS5zd3QuZ3RrDQo8bGk+b3JnLmVjbGlwc2Uuc3d0Lmd0azF4DQo8L3VsPg0KDQo8aDI+DQo8YSBOQU1FPSJQcm9ibGVtIHJlcG9ydHMgZml4ZWQiPjwvYT5Qcm9ibGVtIHJlcG9ydHMgZml4ZWQ8L2gyPg0KPGJsb2NrcXVvdGU+DQo0NjQxOiBJY29uIGxvb2t1cCBmYWlscyBmb3Igc29tZSB3aW5kb3dzIGljb24gcGF0aHMgKDFHRDJERVkpICANCjxicj40ODAyOiBTdHlsZWRUZXh0IC0gQmlkaSBTdXBwb3J0IE9wZW4gSXNzdWVzICgxR0laNUczKSAgDQo8YnI+NDg0MjogQ2FuJ3QgbGF1bmNoIGV4dGVybmFsIGVkaXRvcnMuICgxR0tFWU9FKSAgDQo8YnI+NjA5ODogRVhDRVBUSU9OX0FDQ0VTU19WSU9MQVRJT04gcnVubmluZyBFY2xpcHNlICANCjxicj42ODU4OiBHUCAtIENyYXNoIFZNICANCjxicj44ODI2OiBHUEYgLSBjbG9zaW5nIGEgSmF2YSBlZGl0b3IgIA0KPGJyPjg4Mzc6IFdpbmRvdyBwb3NpdGlvbiBjaGFuZ2VkIGluY29ycmVjdGx5IGluIFNoZWxsLm9wZW4oKSAgDQo8YnI+OTI5NzogRWNsaXBzZSBjcmFzaGVkICANCjxicj4xMTM3NDogZ3A6IENyYXNoIGluIHN3dC13aW4zMi0yMDI2LmRsbCAgDQo8YnI+MTE1ODc6IEJJREk6SmF2YSBlZGl0b3IgYW5kIFRleHQgZWRpdG9yOiBVc2VyIEludGVyZmFjZSBpc3N1ZXMuICANCjxicj4xMjgxMTogVGFibGVDb2x1bW5zIGRvbid0IHBhY2sgcHJvcGVybHkgIA0KPGJyPjEzMjAwOiBncCAtIE1vdmVNZW1vcnkgZXJyb3Igb24gV2luZG93cyBYUCAgDQo8YnI+MTQwNDk6IGdwIC0gQ3Jhc2ggaW4gT1MuTW92ZU1lbW9yeVcgIA0KPGJyPjE0MjIwOiBncCAtIENyYXNoIGNsb3NpbmcgZWRpdG9yICANCjxicj4xNDI0NTogZ3AgLSBjcmFzaCB3aGlsZSBkZWJ1Z2dpbmcgKE5SQ1JBU0gpICANCjxicj4xNDI0OTogRXhjZXB0aW9uIHdoaWxlIHN0ZXBwaW5nICANCjxicj4xNDI4MDogVW5zYXRpc2ZpZWQgTGluayBFcnJvcnMgcnVubmluZyBsaWJzd3QtcGktZ3RrLTIwMzQuc28gb24gTGludXgvR3RrIDIuMA0KPGJyPjE0NDI1OiBGb250IGRpYWxvZyBleGNlcHRpb24gIA0KPGJyPjE0NTI4OiBQcm9ibGVtIHdpdGggTGFiZWwuY29tcHV0ZVNpemUuICANCjxicj4xNDUzODogU3R5bGVkVGV4dCAtIGJpZGkgLSBjaGFuZ2UgYmFja3NwYWNlIGFuZCBkZWxldGUgYmVoYXZpb3IgIA0KPGJyPjE0ODEzOiBDbGFzc0Nhc3RFeGNlcHRpb24gY3JlYXRpbmcgYSBuZXcgUnVuIGNvbmZpZ3VyYXRpb24gIA0KPGJyPjE0ODcyOiBBcnJheUluZGV4T3V0T2ZCb3VuZHNFeGNlcHRpb24gaW4gVGFibGVJdGVtLmluc2VydENvbHVtbiAgDQo8L2Jsb2NrcXVvdGU+DQoNCjxoMT4NCkVjbGlwc2UgUGxhdGZvcm0gQnVpbGQgTm90ZXM8YnI+DQpTV1Q8L2gxPg0KU1dUIEJ1aWxkIDIuMCAwMzYgLSBUdWVzZGF5IEFwcmlsIDIzLCAyMDAyDQoNCjxoMj4NCjxhIE5BTUU9IlByb2JsZW0gcmVwb3J0cyBmaXhlZCI+PC9hPlByb2JsZW0gcmVwb3J0cyBmaXhlZDwvaDI+DQo8YmxvY2txdW90ZT4NCjQ4MzQ6IERDUiAtIG1uZW1vbmljcyBkbyBub3Qgd29yayBvbiB0YWJiZWQgcGFnZXMgKDFHSzdPME4pICANCjxicj43MTg5OiBNZXRob2QgaGlnaGxpZ2h0IGluIGJvcmRlciBkb2VzIG5vdCBtYXRjaCB0aGUgbWV0aG9kICANCjxicj44MjUzOiBSaWdodCBjbGlja2luZyBkb2VzIG5vdCBicmluZyB1cCBjb250ZXh0IG1lbnUgIA0KPGJyPjgzMDY6IEluY29uc2lzdGVuY2llcyBpbiBTV1QgZXhhbXBsZSBkZXNjcmlwdGlvbnMgIA0KPGJyPjg1Mzg6IE1pc21hdGNoIGJldHdlZW4gc2VsZWN0ZWQgdGFiIGFuZCBkaXNwbGF5ZWQgdGFiICANCjxicj44NTQ0OiBTb21lIHByb2JsZW1zIHdpdGggdGhlIGVkaXRvci1wYW5lIChyZXBhaW50LCBmb2N1cykgIA0KPGJyPjkzNjA6IFRleHQgZW50cnkgaW4gY3ZzIGNvbW1lbnQgZGlhbG9nIGNhbid0IGRlYWwgd2l0aCBxdWljayB0eXBpbmcNCjxicj45Nzk0OiBMaW51eC1HVEsgS2V5RXZlbnRzIGJhZC9kaWZmZXJlbnQgZnJvbSB0aGUgb3RoZXIgcGxhdGZvcm1zDQo8YnI+MTI5NDc6IENvbG9yIFByZWZlcmVuY2VzIGluIFByZWZlcmVuY2VzLT5KYXZhLT5FZGl0b3IgIA0KPGJyPjEzODI2OiBQZXJmb3JtYW5jZSBpc3N1ZSBpbiBUYWJsZS5SZW1vdmVBbGwoKSAgDQo8YnI+MTM5MjI6IEVjbGlwc2UgY3Jhc2hlcyB3aGVuIHJ1bm5pbmcgTGF5b3V0RXhhbXBsZSAgDQo8YnI+MTM5OTk6IFN0eWxlZFRleHQgLSBhcHBlbmRpbmcgc2luZ2xlIGxpbmUgZGF0YSBkb2Vzbid0IHVwZGF0ZSBwcm9wZXJseQ0KPGJyPjE0MDQ3OiBTdHlsZWRUZXh0IC0gaW5lZmZpY2llbnQgcmVkcmF3IGR1cmluZyB0ZXh0IGNoYW5nZSB3aXRoIHdvcmQgd3JhcA0KPC9ibG9ja3F1b3RlPg0KDQo8aDE+DQpFY2xpcHNlIFBsYXRmb3JtIEJ1aWxkIE5vdGVzPGJyPg0KU1dUPC9oMT4NClNXVCBCdWlsZCAyLjAgMDM1IC0gVGh1cnNkYXkgQXByaWwgMTgsIDIwMDINCg0KPGgyPg0KPGEgTkFNRT0iTmV3IEFQSXMiPjwvYT5OZXcgQVBJczwvaDI+DQo8dWw+DQo8bGk+RGlzcGxheS5zZXRDdXJzb3JMb2NhdGlvbjwvbGk+DQo8bGk+R3JpZExheW91dChpbnQsYm9vbGVhbik8L2xpPg0KPC91bD4NCg0KPGgyPg0KPGEgTkFNRT0iUHJvYmxlbSByZXBvcnRzIGZpeGVkIj48L2E+UHJvYmxlbSByZXBvcnRzIGZpeGVkPC9oMj4NCjxibG9ja3F1b3RlPg0KNDYwMjogR3JpZExheW91dCBzaG91bGQgaGF2ZSBHcmlkTGF5b3V0KG51bUNvbHVtbnMpIGNvbnN0cnVjdG9yICgxRzlaNzNEKQ0KPGJyPjg1NDk6IG9yZy5lY2xpcHNlLmNvcmUucmVzb3VyY2VzIDQgVW5oYW5kbGVkIGV4Y2VwdGlvbiBjYXVnaHQgaW4gZXZlbnQgbG9vcA0KPGJyPjkwMjk6IEdDLnNldENsaXBwaW5nKFJlY3RhbmdsZSkgc2hvdWxkIGhhbmRsZSBudWxsIGFyZ3VtZW50IG9uIEdUSyAgDQo8YnI+MTA1OTA6IEdUSyBWZXJzaW9uIC8gVHJlZSBWaWV3IGJsYW5rcy4uLiAgDQo8YnI+MTA3MTU6IENvZGUgQXNzaXN0IGRpYWxvZyBoaWRlIGFmdGVyIHByZXNzIGFuZCByZWxlYXNlIENUUkwgKyBTUEFDRSAgDQo8YnI+MTExODI6IFByb3BlcnR5IFNoZWV0IGRvZXMgbm90IGFsbG93IGVkaXRpbmcgd2hlbiB0aGVyZSBpcyBvbmx5IG9uZSBwcm9wZXJ0eQ0KPGJyPjExNTE1OiBjb21wdXRlVHJpbSBhbmQgZ2V0Q2xpZW50QXJlYSBhcmUgaW5jb25zaXN0ZW50IGluIENUYWJGb2xkZXIgIA0KPGJyPjExNzEzOiBEZXNjcmlwdGlvbnMgaW4gcHJlZmVyZW5jZSBwYWdlcyBhcmVuJ3QgYWxpZ25lZCAgDQo8YnI+MTE3MTU6IFRhYiBkb2Vzbid0IHN3aXRjaCBmaWVsZHMgb24gZ3RrICANCjxicj4xMTgzNTogU3RyYW5nZSBiZWhhdmlvdXIgb2YgYmFja3NwYWNlIGluIG5ldyBKYXZhIENsYXNzIGRpYWxvZyAgDQo8YnI+MTE5MzU6IENhbid0IEN0cmwrVGFiIG91dCBvZiBQREUgRWRpdG9yJ3MgZGVwZW5kZW5jaWVzIHBhZ2UgIA0KPGJyPjEyMDczOiBNb3Zpbmcgc2hlbGwgYWJvdmUgb3RoZXIgc2hlbGxzIGRvZXMgbm90IHdvcmsuICANCjxicj4xMjg4MjogRENSOiBTZXQgQ3Vyc29yIGxvY2F0aW9uIHByb2dyYW1tYXRpY2FsbHkgZm9yIGFjY2Vzc2liaWxpdHkgIA0KPGJyPjEzMTk0OiBVc2FiaWxpdHk6IGVkaXRvciB0YWJzICANCjxicj4xMzM4NDogTlBFIG9uIGxhdW5jaGluZyAgDQo8YnI+MTM0MzI6IE9sZUNvbnRyb2xTSXRlIGRvZXNuJ3QgcHJvcGFnYXRlIFdNX1NFVEZPQ1VTIG1lc3NhZ2UgdG8gYW4gQWN0aXZlWCBjb250cm9sDQo8YnI+MTM2Mzk6IENvbnRyb2xzIGRvIG5vdCBhcHBlYXIgaW4gdG9vbCBpdGVtcyAgDQo8YnI+MTM4MDA6IENhbiBub3QgZ2V0IEZvY3VzRXZlbnQgZnJvbSBDb21ibyAgDQo8YnI+MTM5ODI6IEVjbGlwc2Ugd29uJ3Qgc3RhcnQgb24gR1RLMiAgDQo8L2Jsb2NrcXVvdGU+DQoNCjxoMT4NCkVjbGlwc2UgUGxhdGZvcm0gQnVpbGQgTm90ZXM8YnI+DQpTV1Q8L2gxPg0KU1dUIEJ1aWxkIDIuMCAwMzQgLSBUdWVzZGF5IEFwcmlsIDksIDIwMDINCg0KPGgyPg0KPGEgTkFNRT0iUHJvYmxlbSByZXBvcnRzIGZpeGVkIj48L2E+UHJvYmxlbSByZXBvcnRzIGZpeGVkPC9oMj4NCjxibG9ja3F1b3RlPg0KNjc3NDogV2luQ0UgLSBpdGVtcyByZWdhcmRpbmcgUG9ja2V0IFBDIChpbmNsdWRpbmcgMjAwMikgaW50ZWdyYXRpb24NCjxicj44ODA2OiBNb3Zpbmcgdmlld3MgaXMgZGlmZmljdWx0ICANCjxicj45MjQ1OiBUb29sSXRlbXMgaW4gYSBUb29sQmFyIG5vdCBkaXNwbGF5aW5nIGltYWdlcyBvbiBXaW5DRSAgDQo8YnI+OTYxNjogUmVzaXplIGNvbHVtbiBsZWF2ZXMgc29tZSBjaGVlc2UgaW4gdGhlIHRhYmxlICANCjxicj4xMDYwMzogQWRkIEJyZWFrcG9pbnQga2VlcHMgcHJvbXB0aW5nIG1lICANCjxicj4xMDkzNzogQ29udmVydGVyIHByb2JsZW0gb24gU29sYXJpcyAgDQo8YnI+MTE1MjA6IFNoZWxsQWRhcHRlci5zaGVsbERlYWN0aXZhdGVkKCkgbmV2ZXIgY2FsbGVkIG9uIExpbnV4LU1vdGlmICANCjxicj4xMTczNDogRm9jdXMgbm90IG9uICJGaW5pc2hlZCIgYnV0dG9uICANCjxicj4xMTk0MDogRG93biBhcnJvdyBkb2VzIG5vdCBhY2Nlc3MgZHJvcC1kb3duIHBvcnRpb24gb2YgdG9vbGJhciBidXR0b25zDQo8YnI+MTIyNDE6IENvZGVhc3Npc3QgZGlzYXBwZWFyIGFmdGVyIGEgZmV3IHNlY29uZHMgIA0KPGJyPjEyNTczOiBUYWJsZSBzZW5kcyBzZWxlY3Rpb24gZXZlbnQgdHdpY2Ugd2hlbiBpbiBUYWJGb2xkZXINCjxicj4xMjc4NzogQ2hhbmdpbmcgYSBtZW51IGl0ZW0ncyB0ZXh0IG1ha2VzIGl0cyBpY29uIGRpc2FwcGVhciAgDQo8YnI+MTI4ODU6IExhYmVsIGFzIGEgc2VwZXJhdG9yIGRvZXNuJ3QgcmVzaXplIHByb3Blcmx5ICANCjxicj4xMzAwNjogQWx0KzEgd2l0aCBibGFuayBUYWJGb2xkZXIgcmVzdWx0cyBpbiBOUEUgIA0KPGJyPjEzMDE0OiBTZXRUb29sVGlwVGV4dCBjYWxsZWQgbXVsdGlwbGUgdGltZXMgZG9lcyBub3QgcmVzaXplLg0KPGJyPjEzMDQ5OiBDVGFiRm9sZGVyIGZvY3VzIHRyYXZlcnNpbmcgaXMgYnVzdGVkICANCjwvYmxvY2txdW90ZT4NCg0KPGgxPg0KRWNsaXBzZSBQbGF0Zm9ybSBCdWlsZCBOb3Rlczxicj4NClNXVDwvaDE+DQpTV1QgQnVpbGQgMi4wIDAzMyAtIFR1ZXNkYXkgQXByaWwgMiwgMjAwMg0KDQo8aDI+DQo8YSBOQU1FPSJQcm9ibGVtIHJlcG9ydHMgZml4ZWQiPjwvYT5Qcm9ibGVtIHJlcG9ydHMgZml4ZWQ8L2gyPg0KPGJsb2NrcXVvdGU+DQoxMjQ0NjogU1dUIFRhYmxlIENvbHVtbiBJbWFnZSBDb3JydXB0aW9uICANCjxicj4xMjQ0NzogVHJlZS5nZXRTZWxlY3Rpb24oKSBpcyBzbG93IGZvciBsYXJnZSB0cmVlcyAgDQo8L2Jsb2NrcXVvdGU+DQoNCjxoMT4NCkVjbGlwc2UgUGxhdGZvcm0gQnVpbGQgTm90ZXM8YnI+DQpTV1Q8L2gxPg0KU1dUIEJ1aWxkIDIuMCAwMzIgLSBUaHVyc2RheSBNYXJjaCAyOCwgMjAwMg0KDQo8aDI+DQo8YSBOQU1FPSJTdHlsZWRUZXh0IEJpZGkgUHJpbnRpbmciPjwvYT5TdHlsZWRUZXh0IEJpZGkgUHJpbnRpbmc8L2gyPg0KPGJsb2NrcXVvdGU+DQo8cD5TdXBwb3J0IGhhcyBiZWVuIGFkZGVkIGZvciBwcmludGluZyB0aGUgY29udGVudHMgb2YgYSBTdHlsZWRUZXh0IHdpZGdldCBvbg0KYmlkaXJlY3Rpb25hbCBsYW5ndWFnZSBXaW5kb3dzIHBsYXRmb3Jtcy48L3A+DQo8cD4gTm90ZSBob3dldmVyIHRoYXQgcHJpbnRpbmcgRW5nbGlzaCBvciBsb2NhbCBsYW5ndWFnZSB0ZXh0IGRvZXMgbm90IHdvcmsgcHJvcGVybHkgd2l0aCBzb21lDQpwcmludGVyIGRyaXZlcnMgd2hlbiB1c2luZyBhIG5vbi1UcnVlVHlwZSBmb250LiBUaGlzIGhhcyBiZWVuIG5vdGljZWQgb24gV2luZG93cw0KTlQgc3lzdGVtcyB3aXRoIHRoZSBIUCBMYXNlcmpldCA0IHNlcmllcyBwcmludGVyIGRyaXZlci4gUGxlYXNlIHVzZSBhIFRydWVUeXBlDQpmb250IGlmIHRleHQgaXMgcHJpbnRlZCBnYXJibGVkIC4gIA0KPGJyPjwvcD4NCjwvYmxvY2txdW90ZT4NCg0KPGgyPg0KPGEgTkFNRT0iUHJvYmxlbSByZXBvcnRzIGZpeGVkIj48L2E+UHJvYmxlbSByZXBvcnRzIGZpeGVkPC9oMj4NCjxibG9ja3F1b3RlPg0KNDQ2NzogRENSIC0gVHJlZSBtaXNzaW5nIGtleWJvYXJkIHN1cHBvcnQgKDFGSkg1R1kpICANCjxicj40NTI1OiBQcm9wZXJ0eSB2aWV3ZXIgZG9lc24ndCBhZGFwdCB0byBiZyBjb2xvciBjaGFuZ2VzICgxRlg4WEwxKSAgDQo8YnI+MTAzMTc6IFN0eWxlZFRleHQgLSBiaWRpIHByaW50aW5nIHN1cHBvcnQgIA0KPGJyPjEwNDgzOiBTV1QgQ29udHJvbEV4YW1wbGUgRGlyZWN0b3J5RGlhbG9nIGRvZXMgbm90IGNob29zZSBkaXJlY3Rvcmllcw0KPGJyPjExMDgxOiBKYXZhIFNvdXJjZSBFZGl0aW5nIHdpdGggR3JlZWsgTG9jYWxlIG5vIGxvbmdlciB3b3JrcyAgDQo8YnI+MTE1NDk6IENyZWF0ZSBwcm9qZWN0IGRvZXMgbm90IGFsbG93IGNyZWF0aW9uIG9mIGZvbGRlciBpbiBpdHMgcHJvamVjdCBzZWxlY3Rpb24NCjxicj4xMjA5OTogQWNjZXNzaWJpbGl0eSA6IEpBV1MgY2FuIG5vdCByZWFkIFRhYkl0ZW0ncyB0ZXh0ICANCjxicj4xMjIzMTogRE5EIDogRHJhZyBhbmQgRHJvcCBidXN0ZWQgKG1vdXNlIGNhcHR1cmUgbm90IHJlbGVhc2VkKSAgDQo8L2Jsb2NrcXVvdGU+DQoNCjxoMT4NCkVjbGlwc2UgUGxhdGZvcm0gQnVpbGQgTm90ZXM8YnI+DQpTV1Q8L2gxPg0KU1dUIEJ1aWxkIDIuMCAwMzEgLSBNb25kYXkgTWFyY2ggMTgsIDIwMDINCg0KPGgyPg0KPGEgTkFNRT0iTmV3IEFQSXMiPjwvYT5OZXcgQVBJczwvaDI+DQo8dWw+DQo8bGk+U2Nyb2xsZWRDb21wb3NpdGUuZ2V0T3JpZ2luPC9saT4NCjxsaT5TY3JvbGxlZENvbXBvc2l0ZS5zZXRPcmlnaW48L2xpPg0KPGxpPlZhcmlhbnQuZ2V0VHlwZTwvbGk+DQo8L3VsPg0KDQo8aDI+DQo8YSBOQU1FPSJQcm9ibGVtIHJlcG9ydHMgZml4ZWQiPjwvYT5Qcm9ibGVtIHJlcG9ydHMgZml4ZWQ8L2gyPg0KPGJsb2NrcXVvdGU+DQo3NTAwOiBEaXNwbGF5LmdldEJvdW5kcygpIGNhbGxzIGZyb20gYW5vdGhlciB0aHJlYWQgZ2l2ZSBpbmNvcnJlY3QgcmVzdWx0cw0KPGJyPjEwMjczOiBOUEVzIGNhdXNlZCBieSB1bml0aWFsaXplZCAnaXRlbScgZmllbGQgaW4gZXZlbnQNCjxicj4xMDQ4MTogVmlldyB3aWxsIG5vdCBTaXplIHZpYSBQdWxsIERvd24NCjxicj4xMDUxMTogQWRkIHByb2dyYW1tYXRpYyBzY3JvbGxpbmcgdG8gU2Nyb2xsZWRDb21wb3NpdGUNCjxicj4xMDk0MjogTGF1bmNoZXIgc2hvdWxkIGF1dG9kZXRlY3QgZ3RrIG9ubHkgaW5zdGFsbGF0aW9uLg0KPGJyPjExMDUxOiBJbnZhbGlkIHRva2VuIHBhc3RpbmcgaW4gY2FsbGJhY2suYw0KPGJyPjExMDkwOiBDTGFiZWwgSmF2YWRvYyBzYXlzIFNtYXJ0TGFiZWwNCjwvYmxvY2txdW90ZT4NCg0KPGgxPg0KRWNsaXBzZSBQbGF0Zm9ybSBCdWlsZCBOb3Rlczxicj4NClNXVDwvaDE+DQpTV1QgQnVpbGQgMi4wIDAzMCAtIFR1ZXNkYXkgTWFyY2ggMTIsIDIwMDINCg0KPGgyPg0KPGEgTkFNRT0iTmV3IEFQSXMiPjwvYT5OZXcgQVBJczwvaDI+DQo8dWw+DQo8bGk+T2xlQ29udHJvbFNpdGUuYWRkRXZlbnRMaXN0ZW5lcihPbGVBdXRvbWF0aW9uLGludCxPbGVMaXN0ZW5lcik8L2xpPg0KPGxpPlRhYmxlSXRlbS5nZXRGb3JlZ3JvdW5kKCk8L2xpPg0KPGxpPlRhYmxlSXRlbS5nZXRCYWNrZ3JvdW5kKCk8L2xpPg0KPGxpPlRhYmxlSXRlbS5zZXRGb3JlZ3JvdW5kKENvbG9yKTwvbGk+DQo8bGk+VGFibGVJdGVtLnNldEJhY2tncm91bmQoQ29sb3IpPC9saT4NCjxsaT5UcmVlSXRlbS5nZXRGb3JlZ3JvdW5kKCk8L2xpPg0KPGxpPlRyZWVJdGVtLmdldEJhY2tncm91bmQoKTwvbGk+DQo8bGk+VHJlZUl0ZW0uc2V0Rm9yZWdyb3VuZChDb2xvcik8L2xpPg0KPGxpPlRyZWVJdGVtLnNldEJhY2tncm91bmQoQ29sb3IpPC9saT4NCjxsaT5UYWJsZVRyZWVJdGVtLmdldEZvcmVncm91bmQoKTwvbGk+DQo8bGk+VGFibGVUcmVlSXRlbS5nZXRCYWNrZ3JvdW5kKCk8L2xpPg0KPGxpPlRhYmxlVHJlZUl0ZW0uc2V0Rm9yZWdyb3VuZChDb2xvcik8L2xpPg0KPGxpPlRhYmxlVHJlZUl0ZW0uc2V0QmFja2dyb3VuZChDb2xvcik8L2xpPg0KPC91bD4NCg0KPGgyPg0KPGEgTkFNRT0iUHJvYmxlbSByZXBvcnRzIGZpeGVkIj48L2E+UHJvYmxlbSByZXBvcnRzIGZpeGVkPC9oMj4NCjxibG9ja3F1b3RlPg0KODczNzogIE5vIFNlbGVjdGlvbiBldmVudCB3aGVuIERORCBzdGFydHMNCjxicj45OTUwOiAgQ29sb3JEaWFsb2cgd2VpcmQgYmVoYXZpb3INCjxicj45OTU5OiAgUGVyc2lzdGVudCBFY2xpcHNlIE5QRSBvbiBzdGFydHVwDQo8YnI+OTk5MzogIE9sZUNvbnRyb2xTaXRlIGlzIG5vdCBwb3dlcmZ1bCBlbm91Z2gNCjxicj4xMDQyMDogTW91c2UgYW5kIERORCBFdmVudCBub3RpZmljYXRpb24gb3V0IG9mIG9yZGVyDQo8YnI+MTA0ODA6IFVuYWJsZSB0byBvcGVuIGZpbGVzIHdpdGggIlN5c3RlbSBFZGl0b3IiDQo8YnI+MTA0ODI6IFZpZXcgd2lsbCBub3QgTW92ZSB2aWEgUHVsbCBEb3duDQo8L2Jsb2NrcXVvdGU+DQoNCjxoMT4NCkVjbGlwc2UgUGxhdGZvcm0gQnVpbGQgTm90ZXM8YnI+DQpTV1Q8L2gxPg0KU1dUIEJ1aWxkIDIuMCAwMjkgLSBUdWVzZGF5IE1hcmNoIDUsIDIwMDINCg0KPGgyPg0KPGEgTkFNRT0iTmV3IEFQSXMiPjwvYT5OZXcgQVBJczwvaDI+DQoNCjxiPk5vdGU6PC9iPiBUaGUgbmV3IEFjY2Vzc2liaWxpdHkgQVBJIGlzIGV4cGVyaW1lbnRhbCwgYW5kIHdpbGwgbGlrZWx5IGNoYW5nZS4NCjx1bD4NCjxsaT5Db250cm9sLmdldEFjY2Vzc2libGUoKSBhZGRlZDwvbGk+DQo8bGk+cGFja2FnZSA8Yj5vcmcuZWNsaXBzZS5zd3QuYWNjZXNzaWJpbGl0eTwvYj4gYWRkZWQsIGNvbnRhaW5pbmcgdGhlIGZvbGxvd2luZyBjbGFzc2VzOjx1bD4NCjxsaT5BY2Nlc3NpYmxlPC9saT4NCjxsaT5BQ0M8L2xpPg0KPGxpPkFjY2Vzc2libGVMaXN0ZW5lcjwvbGk+DQo8bGk+QWNjZXNzaWJsZUFkYXB0ZXI8L2xpPg0KPGxpPkFjY2Vzc2libGVFdmVudDwvbGk+DQo8bGk+QWNjZXNzaWJsZUNvbnRyb2xMaXN0ZW5lcjwvbGk+DQo8bGk+QWNjZXNzaWJsZUNvbnRyb2xBZGFwdGVyPC9saT4NCjxsaT5BY2Nlc3NpYmxlQ29udHJvbEV2ZW50PC9saT4NCjwvdWw+PC9saT48L3VsPg0KDQpIZXJlIGFyZSB0d28gZXhhbXBsZXMgdGhhdCB1c2UgdGhlIGFjY2Vzc2liaWxpdHkgQVBJOjx1bD4NCjxsaT5Gb3IgYSBjb250cm9sIHdpdGggbm8gY2hpbGQgaXRlbXM6DQo8Y29kZT48cHJlPg0KCQlidXR0b24uZ2V0QWNjZXNzaWJsZSgpLmFkZEFjY2Vzc2libGVMaXN0ZW5lcihuZXcgQWNjZXNzaWJsZUFkYXB0ZXIoKSB7DQoJCQlwdWJsaWMgdm9pZCBnZXROYW1lKEFjY2Vzc2libGVFdmVudCBlKSB7DQoJCQkJZS5yZXN1bHQgPSAiTXkgQnV0dG9uIExhYmVsIjsNCgkJCX0NCgkJfSk7DQo8L3ByZT48L2NvZGU+PC9saT4NCg0KPGxpPkZvciBhIGNvbnRyb2wgdGhhdCBoYXMgY2hpbGQgaXRlbXM6DQo8Y29kZT48cHJlPg0KCQlsaXN0LmdldEFjY2Vzc2libGUoKS5hZGRBY2Nlc3NpYmxlTGlzdGVuZXIobmV3IEFjY2Vzc2libGVBZGFwdGVyKCkgew0KCQkJcHVibGljIHZvaWQgZ2V0TmFtZShBY2Nlc3NpYmxlRXZlbnQgZSkgew0KCQkJCWlmIChlLmNoaWxkSUQgPT0gQUNDLkNISUxESURfU0VMRikgew0KCQkJCQllLnJlc3VsdCA9ICJNeSBMaXN0IExhYmVsIjsNCgkJCQl9IGVsc2Ugew0KCQkJCQllLnJlc3VsdCA9ICJNeSBMaXN0IEl0ZW0gTGFiZWw6ICIgKyBsaXN0LmdldEl0ZW0oZS5jaGlsZElEKTsNCgkJCQl9DQoJCQl9DQoJCX0pOw0KPC9wcmU+PC9jb2RlPjwvbGk+PC91bD4NCjxiPk5vdGU6PC9iPiBUaGUgQVBJIGludm9sdmluZyB0aGUgQWNjZXNzaWJsZUNvbnRyb2xYeHggY2xhc3NlcyBpcyBtb3JlIGNvbXBsZXgsIGFuZCBtb3JlIGxpa2VseSB0byBjaGFuZ2UuIA0KSXQgaXMgdW5saWtlbHkgdGhhdCBhcHBsaWNhdGlvbiBjb2RlIHdpbGwgbmVlZCB0byB1c2UgaXQuIA0KSXQgaXMgcHJpbWFyaWx5IGZvciB0aGUgdXNlIG9mIGN1c3RvbSBjb250cm9sIGltcGxlbWVudG9ycy4NCg0KPGgyPg0KPGEgTkFNRT0iUHJvYmxlbSByZXBvcnRzIGZpeGVkIj48L2E+UHJvYmxlbSByZXBvcnRzIGZpeGVkPC9oMj4NCjxibG9ja3F1b3RlPg0KNDQzNjogR3JpZCBMYXlvdXQgUHJvYmxlbSAoMUZPTFpaRSkgIA0KPGJyPjQ2NjY6IERDUiAtIE5lZWQgYSB3YXkgZm9yIGNoaWxkIHNoZWxscyB0byBkaXNhYmxlIEVTQyBjbG9zaW5nICgxR0U4UlhXKQ0KPGJyPjQ3OTA6IFhJbml0VGhyZWFkcyBjYXVzZXMgamFwYW5lc2UgaW5wdXQgbWV0aG9kIHRvIGhhbmcgKDFHSVJZUjYpDQo8YnI+NDc3NTogWEluaXRUaHJlYWRzIGNhdXNlcyBYIHByaW50aW5nIHRvIGhhbmcgKDFHSVRCUUwpDQo8YnI+NDQ1NDogRENSOiBUYWJsZXMgbmVlZCB0byBzdXBwb3J0IGNlbGwgZWRpdGluZyAoMUZHUExQUCkNCjxicj4xMDAwMjogRGV0ZWN0aW9uIG9mIENERSBhcyBhY3RpdmUgV00gaXMgcGxhdGZvcm0tc3BlY2lmaWMgIA0KPGJyPjEwNDI2OiBFc2MgdHJhdmVyc2UgZG9lcyBub3QgZ28gdXAgaGllcmFyY2h5ICANCjwvYmxvY2txdW90ZT4NCg0KPGgxPg0KRWNsaXBzZSBQbGF0Zm9ybSBCdWlsZCBOb3Rlczxicj4NClNXVDwvaDE+DQpTV1QgQnVpbGQgMi4wIDAyOCAtIFRodXJzZGF5IEZlYnJ1YXJ5IDI4LCAyMDAyDQoNCjxoMj4NCjxhIE5BTUU9IlByb2JsZW0gcmVwb3J0cyBmaXhlZCI+PC9hPlByb2JsZW0gcmVwb3J0cyBmaXhlZDwvaDI+DQo8YmxvY2txdW90ZT4NCjQ2ODg6IEogLSBGb250IERpYWxvZyBkb2VzIG5vdCBzZWxlY3QgYSBmb250IHdoZW4gc2VsZWN0aW5nIGEgZm9udCBmYW1pbHkgKDFHRVQ1QlcpDQo8YnI+NzEzOTogRm9udERpYWxvZzogU2VsZWN0ZWQgZm9udCBub3QgdXNlZCAgDQo8YnI+ODg2NTogRXhjZXB0aW9uIHdoZW4gY3JlYXRpbmcgYSBUb29sSXRlbSB3aXRoIGEgbnVsbCBpbWFnZSBpbiBMaW51eA0KPGJyPjEwMjUwOiBTbGlkZXIgd2l0aCBWRVJUSUNBTCBvcmllbnRhdGlvbiAtIGRvd24gYXJyb3cgaW5jcmVtZW50cyAgDQo8L2Jsb2NrcXVvdGU+DQoNCjxoMT4NCkVjbGlwc2UgUGxhdGZvcm0gQnVpbGQgTm90ZXM8YnI+DQpTV1Q8L2gxPg0KU1dUIEJ1aWxkIDIuMCAwMjcgLSBUdWVzZGF5IEZlYnJ1YXJ5IDI2LCAyMDAyDQoNCjxoMj4NCjxhIE5BTUU9IlByb2JsZW0gcmVwb3J0cyBmaXhlZCI+PC9hPlByb2JsZW0gcmVwb3J0cyBmaXhlZDwvaDI+DQo8YmxvY2txdW90ZT4NCjY0MDk6IE5vZGUgc2VsZWN0aW9uIGluIHBhY2thZ2UgdmlldyAgDQo8YnI+ODM4OTogTW91c2VVcCBub3QgcmVwb3J0ZWQgY29ycmVjdGx5IGlmIERyYWdEZXRlY3QgaG9va2VkICANCjxicj45MzY0OiBFeGNlcHRpb24gaW4gU3R5bGVkVGV4dCAgDQo8YnI+OTc3MzogRm9udCBhbmQgQ29sb3IgZGlhbG9ncyBkbyBub3QgYXBwZWFyIGNlbnRyZWQgb24gcGFyZW50ICANCjxicj45OTUwOiBDb2xvckRpYWxvZyB3ZWlyZCBiZWhhdmlvciAgDQo8L2Jsb2NrcXVvdGU+DQoNCjxoMT4NCkVjbGlwc2UgUGxhdGZvcm0gQnVpbGQgTm90ZXM8YnI+DQpTV1Q8L2gxPg0KU1dUIEJ1aWxkIDIuMCAwMjYgLSBUdWVzZGF5IEZlYnJ1YXJ5IDEyLCAyMDAyDQoNCjxoMj4NCjxhIE5BTUU9IlByb2JsZW0gcmVwb3J0cyBmaXhlZCI+PC9hPlByb2JsZW0gcmVwb3J0cyBmaXhlZDwvaDI+DQo8YmxvY2txdW90ZT4NCjY2Nzk6IEltYWdlLmdldEltYWdlRGF0YSgpIG5vdCBpbXBsZW1lbnRlZCAgDQo8YnI+Nzk2MjogU1dULmdldFBsYXRmb3JtKCkgamF2YWRvYyBpbmNvcnJlY3QgZm9yIHJldHVybiBkZXNjcmlwdGlvbiAgDQo8YnI+ODk4NDogQ1RhYkZvbGRlci5NSU5fVEFCX1dJRFRIIHNob3VsZCBub3QgYmUgc3RhdGljICANCjxicj45MDIyOiBMaW51eDogVHJlZSBWaWV3ZXIgZG9lcyBub3QgZ2V0IGRlZnVhbHQgU2VsZWN0aW9uICANCjxicj45MDcyOiBUYWJsZSBUcmVlIGRvZXMgbm90IHBpY2sgdXAgd2luZG93cyBzZXR0aW5ncyBjaGFuZ2VzICANCjxicj45MDkxOiBTdHlsZWRUZXh0IGluIFNJTkdMRSBtb2RlIHNob3VsZCBsb29rIG1vcmUgbGlrZSBhIFRleHQgd2lkZ2V0ICANCjxicj45MTcyOiBTV1QgQWRkcmVzc0Jvb2sgRXhhbXBsZSBjYWxscyB1bmRlZmluZWQgbWV0aG9kDQo8YnI+OTQzMjogVGhlIGRvYyBmb3IgVHJhY2tlciB3aWRnZXQgc2hvdWxkIHNwZWNpZnkgdGhhdCByZWN0YW5nbGVzIGFyZSBpbiBzY3JlZW4gY29vcmRpbmF0ZXMNCjwvYmxvY2txdW90ZT4NCg0KPGgxPg0KRWNsaXBzZSBQbGF0Zm9ybSBCdWlsZCBOb3Rlczxicj4NClNXVDwvaDE+DQpTV1QgQnVpbGQgMi4wIDAyNSAtIFR1ZXNkYXkgRmVicnVhcnkgNSwgMjAwMg0KDQo8aDI+DQo8YSBOQU1FPSJQcm9ibGVtIHJlcG9ydHMgZml4ZWQiPjwvYT5Qcm9ibGVtIHJlcG9ydHMgZml4ZWQ8L2gyPg0KPGJsb2NrcXVvdGU+DQoyNDMwOiBTb3J0aW5nIHRoZSBUYXNrcyBMaXN0IHNob3VsZCBkaXNwbGF5IGljb24gZm9yIHNvcnQga2V5L29yZGVyICgxR0Y1VFFPKQ0KPGJyPjQ0ODU6IERDUiAtIFRhYmxlIGNvbHVtbiBoZWFkZXIgZGVjb3JhdGlvbiBjYXBhYmlsaXR5IG5lZWRlZCAoMUZPUVFNOCkNCjxicj42MDM1OiBEaWZmZXJlbmNlIGluIHRyZWUgImV4cGFuZGVkIHN0YXRlIiBiZXR3ZWVuIFdpbmRvd3MgYW5kIE1vdGlmDQo8YnI+Njk4MzogQnJvd3NlIGJ1dHRvbiBpbiBJbXBvcnQtPlBsdWdpbnMgbm90IHdvcmtpbmcuICANCjxicj43NDAwOiBTaW5nbGUgbGluZSB0ZXh0IGZpZWxkcyBub3QgZmlyaW5nICJLZXkgUHJlc3NlZCIgZXZlbnRzIGZvciB0aGUgRW50ZXIsIFVwKGFycm93KSwgYW5kIERvd24oYXJyb3cpIGtleXMNCjxicj44MTczOiBBY2Nlc3NpYmlsaXR5OiBrZXlib2FyZC1pbnZva2VkIHBvcHVwIG1lbnUgbm90IHVzYWJsZSAgDQo8YnI+ODE5NjogQWNjZXNzaWJpbGl0eTogc2hpZnQrRjEwIGRvZXMgbm90IGRpc3BsYXkgdmlldyBtZW51ICANCjxicj44MjczOiBIb3Jpem9udGFsIHNjb3JsbGJhciBkb2VzIG5vdCBhbGxvdyBzY3JvbGxpbmcgd2hlbiByZXF1aXJlZCAgDQo8YnI+ODM5NjogV0lOQ0U6IE1lbnUgYmFyIG9ic2N1cmVzIGNvbnRyb2wgd2hlbiBjb250cm9sIGxvY2F0aW9uIGlzIDAsMA0KPGJyPjgzOTc6IFdJTkNFOiBNZW51IGl0ZW0gY29sb3JzIGRvbid0IG1hdGNoIG1lbnUgYmFyICANCjxicj44NDEyOiBXSU5DRTogQmFja2dyb3VuZCBjb2xvciBvZiBidXR0b25zIGxvb2tzIHdyb25nICANCjxicj44NjQwOiBHUDogb3BlbmluZyBTeW5jaHJvbml6YXRpb24gcGVyc3BlY3RpdmUgIA0KPGJyPjg5NDI6IFdyb25nIHRleHQgaW5kZW50IGluIGEgdGFibGUgd2hlbiB1c2UgaW1hZ2UgIA0KPC9ibG9ja3F1b3RlPg0KDQo8aDE+DQpFY2xpcHNlIFBsYXRmb3JtIEJ1aWxkIE5vdGVzPGJyPg0KU1dUPC9oMT4NClNXVCBCdWlsZCAyLjAgMDI0IC0gVHVlc2RheSBKYW51YXJ5IDI5LCAyMDAyDQoNCjxoMj4NCjxhIE5BTUU9IlByb2JsZW0gcmVwb3J0cyBmaXhlZCI+PC9hPlByb2JsZW0gcmVwb3J0cyBmaXhlZDwvaDI+DQo8YmxvY2txdW90ZT4NCjQ2NTQ6IFZBSiBoYW5ncyB3aGVuIGRyYWdnaW5nIGZyb20gZmlsZSBtYW5hZ2VyIHRvIHRoZSBkZXNrdG9wLiAoMUdEUUZaNikNCjxicj40NzIwOiBFY2xpcHNlIGZyZWV6ZXMgZHVyaW5nIGRyYWcgJiBkcm9wIG9wZXJhdGlvbiAoMUdGN1JSSCkgIA0KPGJyPjQ3MjQ6IEdQIC0gRmF0YWwgYXBwIGVycm9yIC0gcmVuYW1pbmcgcmVzb3VyY2Ugb24gbGludXggKDFHRjdUWE8pICANCjxicj40NzM2OiBGaXggcHJpbnRpbmcgKDFHRlcyQ1cpICANCjxicj40ODE3OiBOZWVkIEphdmFEb2MgY29tbWVudHMgZm9yIFNXVCBQaG90b24gKDFHSkxFVTApICANCjxicj42ODM1OiBDaGFyYWN0ZXJzIPbk5SBhbmQgoyBkb2Vzbid0IHdvcmsgaW4gSmF2YSBlZGl0b3Igb24gU3dlZGlzaCAgDQo8YnI+ODI1NTogQ2xvc2luZyBwYWludCB2aWV3ZXIgY2F1c2VzIGludGVybmFsIGVycm9yICANCjxicj44NDEwOiBCbGFjayBjb2xvciBiZWNvbWUgdHJhbnNwYXJlbnQgaW4gVG9vbEJhciBpbWFnZXMgIA0KPGJyPjg1MDM6IFN0eWxlZFRleHQgLSBjaGVlc2UgaWYgcmVzaXplIGluIHdvcmQgd3JhcCB0cmllcyB0byBrZWVwIHBhcnRpYWwgdG9wIGxpbmUNCjxicj44NTQ3OiBJbnRlbGxpbW91c2Ugc2Nyb2xsaW5nIGRvZXMgbm90IHdvcmsgaW4gZWNsaXBzZSAgDQo8L2Jsb2NrcXVvdGU+DQoNCjxoMT4NCkVjbGlwc2UgUGxhdGZvcm0gQnVpbGQgTm90ZXM8YnI+DQpTV1Q8L2gxPg0KU1dUIEJ1aWxkIDIuMCAwMjNhIC0gVGh1cnNkYXkgSmFudWFyeSAyNCwgMjAwMiAoRWNsaXBzZSBNaWxlc3RvbmUgMikNCg0KPGgyPg0KPGEgTkFNRT0iUHJvYmxlbSByZXBvcnRzIGZpeGVkIj48L2E+UHJvYmxlbSByZXBvcnRzIGZpeGVkPC9oMj4NCjxibG9ja3F1b3RlPg0KNDcwMDogTnVtTG9jayBhbmQgQ2Fwc0xvY2sgZGlzYWJsZSBhY2NlbGVyYXRvcnMgKDFHRVREVDkpICANCjxicj42MTgwOiBXYWtlIG1lY2hhbmlzbSBicm9rZW4gb24gTW90aWYgIA0KPGJyPjY4NzM6IERlY29yYXRpb25zLnNldEltYWdlKCkgdGhyb3dzIE5QRSBvbiBXSU5DRSAgDQo8YnI+NzgwNTogQSBuZXcgSW1hZ2VEYXRhKGZyb20gYW4gSW5wdXRTdHJlYW0pIHRocm93aW5nIE5QRSAgDQo8YnI+ODEzMzogV2hlbiB0b29sYmFyIGhhcyBmb2N1cywgY2FuJ3QgdXNlIG1uZW1vbmljcyBmb3IgRmlsZSBtZW51cyAgDQo8YnI+ODIxMzogZXhjZXB0aW9uOiB3aWRnZXQgaXMgZGlzcG9zZWQgIA0KPC9ibG9ja3F1b3RlPg0KDQo8aDE+DQpFY2xpcHNlIFBsYXRmb3JtIEJ1aWxkIE5vdGVzPGJyPg0KU1dUPC9oMT4NClNXVCBCdWlsZCAyLjAgMDIzIC0gVHVlc2RheSBKYW51YXJ5IDIyLCAyMDAyDQoNCjxoMj4NCjxhIE5BTUU9IlByb2JsZW0gcmVwb3J0cyBmaXhlZCI+PC9hPlByb2JsZW0gcmVwb3J0cyBmaXhlZDwvaDI+DQo8YmxvY2txdW90ZT4NCjQ2MTA6IFN0eWxlZFRleHQgLSBEQ1IgLSBXb3JkIHdyYXAgKDFHQUJTNkMpICANCjxicj40NjQ0OiBNb3VzZSBjbGljayBvbiBhIGxpbmsgZGlzcGxheWVkIGluIGVtYmVkZGVkIElFNSBBY3RpdmVYIGlzIG5vdCByZWxpYWJsZSAoMUdEN1RUMikNCjxicj41NjYwOiBTV1QgZGVmYXVsdCBmb250J3MgbmVlZCB0byBob25vciBhY2Nlc2FiaWxpdHkgc2V0dGluZ3MgIA0KPGJyPjYzMjQ6IFNXVC5DTE9TRSBpbXBsaWVzIHJlbmRlcmluZyBvZiBNaW5pbWl6ZSBhbmQgTWF4aW1pemUgYnV0dG9ucyAgDQo8YnI+Njk5NzogU3R5bGVkVGV4dCAtIG1hcmsgbmV3IEFQSSAgDQo8YnI+NzEyMzogU2hlbGwgc2hvd3MgdGhlIG1heGltaXplIGJ1dHRvbiBlbmFibGVkIHdoZW4gU1dULlRJVExFIHwgU1dULkJPUkRFUiB8IFNXVC5DTE9TRSBzdHlsZSBwYXNzZWQNCjxicj43MzYxOiBBZGQgZ2V0T2Zmc2V0QXRMaW5lIEFQSSAgDQo8YnI+NzYzMjogVHJlZSB3aWRnZXQgZG9lc24ndCBzZWxlY3QgaXRlbSB3aXRoIGZvY3VzIG9uIHJpZ2h0LWNsaWNrICANCjxicj43ODQ5OiBMYWJlbHMgb24gV0lOQ0UgZG9uJ3QgdXNlIGJhY2tncm91bmQgY29sb3Igb2YgcGFyZW50IHdoZW4gY29sb3IgaXNuJ3Qgc2V0DQo8YnI+Nzg2NzogRENSOiBEZWxldGUgY2hlY2tTdWJjbGFzcyBtZXRob2QgZnJvbSBEaWFsb2cgIA0KPGJyPjc5NTk6IFBvdGVudGlhbCBwcm9ibGVtcyB3aGVuIHJ1bm5pbmcgb24gYmlnIGVuZGlhbiBtYWNoaW5lcyAgDQo8L2Jsb2NrcXVvdGU+DQoNCjxoMT4NCkVjbGlwc2UgUGxhdGZvcm0gQnVpbGQgTm90ZXM8YnI+DQpTV1Q8L2gxPg0KU1dUIEJ1aWxkIDIuMCAwMjIgLSBUdWVzZGF5IEphbnVhcnkgMTUsIDIwMDINCg0KPGgyPg0KPGEgTkFNRT0iUHJvYmxlbSByZXBvcnRzIGZpeGVkIj48L2E+UHJvYmxlbSByZXBvcnRzIGZpeGVkPC9oMj4NCjxibG9ja3F1b3RlPg0KNDY2MzogRmFpbCB0byB0YWIgdGhlIHZpZXdzLiAoMUdHWVY4VCkgIA0KPGJyPjQ3MTg6IFRvb2wgdGlwIGlzIG9wZW5uaW5nIHdoZW4gb24gZHJhZ2dpbmcuICgxR0Y1WjdaKSAgDQo8YnI+NTg2NjogQ2FuJ3QgbXVsdGlzZWxlY3QgaW4gVHJlZSB1c2luZyBrZXlib2FyZCAgDQo8YnI+NjU5MjogQm94IGZvciBjaGVja2JveCB0YWJsZSBpdGVtcyBpcyB0b28gbGFyZ2Ugd2hlbiB1c2luZyBsYXJnZSBmb250cw0KPGJyPjY3NzA6IE9ubHkgdGhlIGxlZnQgbW91c2UgYnV0dG9uIHNob3VsZCBzZWxlY3QgaW4gYSBUYWJsZS4gIA0KPGJyPjY4NTI6IFN0eWxlZFRleHQgLSB2ZXJpZnkgZXZlbnQgY2hhcmFjdGVyIGludmFsaWQgdmFsdWUgIA0KPGJyPjY5NDA6IE1lbnVTaG9ydGN1dHMgb25seSByZXNwb25kIHRvIEN0cmwtTiAgDQo8YnI+NzE5MDogQ3RybC1TIGRvZXMgbm90IHdvcmsgIA0KPGJyPjc0NTg6IFdpbkNFIC0gdG9wIGxldmVsIFNoZWxscyBjcmVhdGVkIHRocm91Z2ggRGlzcGxheS5hc3luY2V4ZWMgY2FuIGhhdmUgaW5jb3JyZWN0IFotb3JkZXINCjxicj43NDU5OiBDYXJldCBsZWF2aW5nIGdhcmJhZ2UgIA0KPGJyPjc0ODY6IENhbm5vdCB1c2Uga2V5Ym9hcmQgU2hpZnQgU2VsZWN0IGluIGEgVHJlZSAgDQo8YnI+NzU1OTogU2Nyb2xsQmFyIHRodW1iIGlzIHJlc2V0IHdoZW4gU2Nyb2xsQmFyIGlzIGhpZGRlbiwgdGhlbiBzaG93bg0KPC9ibG9ja3F1b3RlPg0KDQo8aDE+DQpFY2xpcHNlIFBsYXRmb3JtIEJ1aWxkIE5vdGVzPGJyPg0KU1dUPC9oMT4NClNXVCBCdWlsZCAyLjAgMDIxIC0gVHVlc2RheSBKYW51YXJ5IDgsIDIwMDINCg0KPGgyPg0KPGEgTkFNRT0iUHJvYmxlbSByZXBvcnRzIGZpeGVkIj48L2E+UHJvYmxlbSByZXBvcnRzIGZpeGVkPC9oMj4NCjxibG9ja3F1b3RlPg0KNDQ0MzogTGF5b3V0OiBFeGNlcHRpb25zIHdoZW4gaG9yaXpvbnRhbFNwYW4gPiByZW1haW5pbmcgY29sdW1ucyAoMUZGQzZYWikNCjxicj40NDYyOiBTY3JvbGxCYXIgLSB2YmFyLnNldE1heGltdW0gZG9lcyBub3Qgd29yayBhZnRlciBoYmFyIGlzIGhpZGRlbiAoYW5kIHZpY2UgdmVyc2EpICgxRklHNUNHKQ0KPGJyPjQ3MjI6IEZpcnN0IGVkaXRvciB0YWIgbWlzc2luZyBjbG9zZSBidXR0b24gKDFHRjdRSVEpICANCjxicj40NzU1OiBSZWJ1aWxkaW5nIGxhdW5jaGVyIGZyb20gYW5vdGhlciBkaXJlY3RvcnkgKDFHR05SRzApICANCjxicj42MzE1OiBTb21lIHBlcnNwZWN0aXZlIHNhdmUgY29uZmlybWF0aW9uIG1lc3NhZ2VzIGN1dCBvZmYgIA0KPGJyPjYzNTI6IEVkaXRvciBkb2Vzbid0IGdldCBhY3RpdmF0ZWQgd2hlbiByZXZlYWxpbmcgZmlyc3QgbWF0Y2ggIA0KPGJyPjY5MDg6IE1lbnUgaGFuZGxlIGxlYWsgaW4gb3JnLmVjbGlwc2Uuc3d0LndpZGdldHMuTWVudS5kZXN0cm95SXRlbShNZW51SXRlbSkNCjxicj42OTQ1OiBDaGlsZCBzaGVsbHMgbm90IGRpc3BsYXlpbmcgb24gV2luQ0UgIA0KPGJyPjY5ODI6IENoZWNrZWRUYWJsZXMgaGF2ZSBubyBjaGVjayBib3hlcyAgDQo8YnI+NzAwNTogTWlzc2luZyBtZXRob2RzIGluIFNXVC9HVEsgaW1wbGVtZW50YXRpb24gIA0KPGJyPjcwMTg6IFRyZWUgZG9lcyBub3QgaG9ub3IgU1dULkNIRUNLIHN0eWxlICANCjxicj43MDY4OiBTY3JvbGxCYXIuc2V0VmlzaWJsZSh0cnVlKSBkb2VzIG5vdCB3b3JrIGFmdGVyIGNoYW5naW5nIHZhbHVlcw0KPGJyPjcxNTA6IFN0eWxlZFRleHQgLSBiaWRpIC0gcGFydGlhbCBzdHlsaW5nIG9mIGxpZ2F0dXJlcyBidWcgIA0KPGJyPjcxOTE6IERpYWxvZ3Mgbm90IGJpZyBlbm91Z2ggZm9yIGNvbnRlbnQgIA0KPC9ibG9ja3F1b3RlPg0KDQo8aDE+DQpFY2xpcHNlIFBsYXRmb3JtIEJ1aWxkIE5vdGVzPGJyPg0KU1dUPC9oMT4NClNXVCBCdWlsZCAyLjAgMDIwIC0gVHVlc2RheSBEZWNlbWJlciAxOCwgMjAwMQ0KDQo8aDI+DQo8YSBOQU1FPSJQcm9ibGVtIHJlcG9ydHMgZml4ZWQiPjwvYT5Qcm9ibGVtIHJlcG9ydHMgZml4ZWQ8L2gyPg0KPGJsb2NrcXVvdGU+DQo0NzE1OiBGaXJzdCBoZWxwIGNsaWNrIG9uIGEgY2hhcHRlciBpcyBpZ25vcmVkICgxR0Y1VFY5KSAgDQo8YnI+NDc4NDogTUlGIEZpbGVzIHNvbWV0aW1lIGZhaWwgKDFHSTdIN1YpICANCjxicj40Nzk3OiBUYWJsZSBkb2VzIG5vdCB1c2UgU3lzdGVtIGZvbnRzICgxR0lWNFBaKSAgDQo8YnI+NjYzNTogV2luQ0U6IGRlY29yYXRpb25zLnNldE1lbnVCYXIgY2FuIGJlIHNldCBvbmx5IG9uY2UgIA0KPGJyPjY2ODU6IFN0eWxlZFRleHQgLSBvbiBzZXRGb250IGNhcmV0IG5vdCBiZWluZyBwb3NpdGlvbmVkIGNvcnJlY3RseSAgDQo8YnI+Njc3MzogU3R5bGVkVGV4dC5jb21wdXRlU2l6ZSB1c2VzIGRpc3BsYXkgd2lkdGggdG8gY2FsY3VsYXRlIG51bWJlciBvZiB2aXNpYmxlIGxpbmVzDQo8YnI+Njc5MDogVG91Y2hpbmcgY29kZSBhc3Npc3Qgc2Nyb2xsYmFyIGR1bXBzIGphdmFjb3JlICANCjxicj42ODYzOiBSZW1haW5pbmcgaXNzdWVzIGluIGVtdWxhdGVkIENvb2xCYXIgYW5kIENvb2xJdGVtICANCjxicj42OTMzOiBTd2l0Y2hpbmcgdG8gaGVscCBwZXJzcGVjdGl2ZSBjcmFzaGVzIHRoZSB3b3JrYmVuY2ggIA0KPGJyPjcwMTQ6IFRyZWUgbm90IGFjY2VwdGluZyBjaGlsZHJlbiAgDQo8L2Jsb2NrcXVvdGU+DQoNCjxoMT4NCkVjbGlwc2UgUGxhdGZvcm0gQnVpbGQgTm90ZXM8YnI+DQpTV1Q8L2gxPg0KU1dUIEJ1aWxkIDIuMCAwMTkgLSBUdWVzZGF5IERlY2VtYmVyIDExLCAyMDAxDQoNCjxoMj4NCjxhIE5BTUU9IlByb2JsZW0gcmVwb3J0cyBmaXhlZCI+PC9hPlByb2JsZW0gcmVwb3J0cyBmaXhlZDwvaDI+DQo8YmxvY2txdW90ZT4NCjQ0NjE6IFNXVEV4Y2VwdGlvbiBzaG91bGQgb3ZlcndyaXRlIHByaW50U3RhY2tUcmFjZSguLikgKDFHTERXNlApICANCjxicj40NDkzOiBDaGVjayBtdWx0aWxpbmd1YWwgc3VwcG9ydCBvbiBXaW5kb3dzIDIwMDAgKDFGUUZDQlEpICANCjxicj40NjExOiBTdHlsZWRUZXh0IC0gU3RyaW5nSW5kZXhPdXRPZkJvdW5kcyBleGNlcHRpb24gaW5zZXJ0aW5nIHRleHQgaW4gbGluZSBicmVhayAoMUdFSUQ4QikNCjxicj40NjIwOiBXb3JrYmVuY2ggZG9lcyBub3QgY2xvc2UgQWN0aXZlWCBjb250cm9sJ3MgZmlsZSBoYW5kbGUgKDFHQjc2QVopDQo8YnI+NDY2MDogTW92aW5nICANCjxicj40NzE5OiBCYWNrZ3JvdW5kIGNvbG91ciBvZiB2aWV3cy9lZGl0b3JzICgxR0Y2QzhZKSAgDQo8YnI+NDczOTogRENSOiBQcm92aWRlIGF1dG8tc2Nyb2xsaW5nIGFuZCBleHBhbnNpb24gYnkgZGVmYXVsdCBpbiB0aGUgdHJlZSBkdXJpbmcgRE5EICgxR0ZXN05RKQ0KPGJyPjQ3Njc6IFRhYiBGb2xkZXJzIGNhbiBub3QgYmUgdG9nZ2xlZCB1c2luZyBrZXlzLiAoMUdIRkNaVSkgIA0KPGJyPjQ3ODA6IFlBTTogQ2Fubm90IHJlYWQgc29tZSBKUEVHIGZpbGVzICgxR0k2WkVOKSAgDQo8YnI+NDc4MzogQ2FuJ3Qgc2Nyb2xsIHRvIHRoZSB0b3Agb2YgdGhlIG5hdmlnYXRvciAoMUdJN0dURykgIA0KPGJyPjUwNzE6IFNoaWZ0LVRBQiBkb2Vzbid0IGdlbmVyYXRlIHByb3BlciBldmVudCAgDQo8YnI+NTY3NzogSGllcmFyY2h5IG91dGxpbmUgaGFzIGVtcHR5IHNwYWNlICANCjxicj41ODU3OiBJbWFnZS5nZXRJbWFnZURhdGEgbmVlZHMgdG8gc3VwcG9ydCAxNSBiaXQgY29sb3IgZGVwdGggIA0KPGJyPjY0NzI6IFRhYmxlIHdpZGdldCBoYXMgZW1wdHkgZW50cmllcyAgDQo8YnI+NjU3MjogRGVmYXVsdCBiYWNrZ3JvdW5kIGNvbG9yIG9mIExpc3RzIGFuZCBDb21ib3Mgbm90IGNvbnNpc3RlbnQgd2l0aCBXaW4ySw0KPGJyPjY2NTE6IFRleHQuc2V0U2VsZWN0aW9uKCkgZG9lc24ndCBhY3R1YWxseSBkaXNwbGF5IHRoZSBzZWxlY3Rpb24gdmlzdWFsbHkgZm9yIFNXVC5TSU5HTEUNCjxicj42NjU0OiBUZXh0LmdldFNlbGVjdGlvbigpIG5vdCByZXR1cm5pbmcgY29ycmVjdCBpbmZvIG9uIFdJTkNFICANCjwvYmxvY2txdW90ZT4NCg0KPGgxPg0KRWNsaXBzZSBQbGF0Zm9ybSBCdWlsZCBOb3Rlczxicj4NClNXVDwvaDE+DQpTV1QgQnVpbGQgMi4wIDAxOCAtIFR1ZXNkYXkgRGVjZW1iZXIgNCwgMjAwMQ0KDQo8aDI+DQo8YSBOQU1FPSJQcm9ibGVtIHJlcG9ydHMgZml4ZWQiPjwvYT5Qcm9ibGVtIHJlcG9ydHMgZml4ZWQ8L2gyPg0KPGJsb2NrcXVvdGU+DQo0NDE5OiBXaWRnZXRzIC0gTWlzc2luZyBmZWF0dXJlcyBhbmQgQVBJIG9uIE1PVElGICgxRkJQS0NUKSAgDQo8YnI+NDQ5NDogQ29sb3JEaWFsb2cgZG9lc24ndCBvcGVuIGluIFZBL0phdmEgd2l0aCBKREsgMS4yICgxRlFHTTZIKSAgDQo8YnI+NDgzMzogUmVtb3ZlIGZvY3VzIGJ1dHRvbiBmcm9tIFRhYmxlICgxR0s3TUs0KSAgDQo8YnI+NDg2MDogU3R5bGVkVGV4dCAtIFN0eWxlZFRleHRCaWRpLCBCaWRpVXRpbCBuZWVkIGRvYyAoMUdMMzJDOCkgIA0KPGJyPjYyMDQ6IEtleUxpc3RlbmVyIG9uIHRhYmxlIGRvZXMgbm90IHdvcmsuICANCjxicj42NDM4OiBTdHlsZWRUZXh0IC0gYmlkaSAtIGlzQmlkaSB0ZXN0IG5vdCB3b3JraW5nIG9uIFhQICANCjwvYmxvY2txdW90ZT4NCg0KPGgxPg0KRWNsaXBzZSBQbGF0Zm9ybSBCdWlsZCBOb3Rlczxicj4NClNXVDwvaDE+DQpTV1QgQnVpbGQgMi4wIDAxNyAtIFR1ZXNkYXkgTm92ZW1iZXIgMjcsIDIwMDENCg0KPGgyPg0KPGEgTkFNRT0iUHJvYmxlbSByZXBvcnRzIGZpeGVkIj48L2E+UHJvYmxlbSByZXBvcnRzIGZpeGVkPC9oMj4NCjxibG9ja3F1b3RlPg0KNDcxNDogTGFiZWwgZHJhd3Mgd3JvbmcgYmFja2dyb3VuZCB3aGVuIGltYWdlIGlzIHNldCAoMUdGMElDNikgIA0KPGJyPjU1MDM6IFRhYmJpbmcgYnJva2VuICANCjxicj41OTg2OiBCaWRpVXRpbCBoYW5kbGluZyBvZiBXTV9JTlBVVExBTkdDSEFOR0UgbmVlZHMgdG8gYmUgZml4ZWQNCjxicj41OTkyOiBDaGFuZ2luZyBKYXZhIEVkaXRvciBmb250IGluIFByZWZlcmVuY2UgUGFnZSBtYWtlcyBFY2xpcHNlIGhhbmcgb3IgY3Jhc2gNCjxicj42MTcxOiBOdWxsUG9pbnRlckV4Y2VwdGlvbiBpbiBJbWFnZUxvYWRlciBzYXZlIG1ldGhvZCB3aXRoIFNXVC5JTUFHRV9KUEVHDQo8L2Jsb2NrcXVvdGU+DQoNCjxoMT4NCkVjbGlwc2UgUGxhdGZvcm0gQnVpbGQgTm90ZXM8YnI+DQpTV1Q8L2gxPg0KU1dUIEJ1aWxkIDIuMCAwMTUgLSBUdWVzZGF5IE5vdmVtYmVyIDIwLCAyMDAxDQoNCjxoMj4NCjxhIE5BTUU9IlByb2JsZW0gcmVwb3J0cyBmaXhlZCI+PC9hPlByb2JsZW0gcmVwb3J0cyBmaXhlZDwvaDI+DQo8YmxvY2txdW90ZT4NCjQ3OTE6IFN0eWxlZFRleHQgZG9lcyBub3Qgc3dpdGNoIGNvbG91ciAoMUdJTEhJVykgIA0KPGJyPjQ5NTY6IFN0eWxlZFRleHQgLSBjaGFuZ2UgU3R5bGVkVGV4dEJpZGkudG9TdHJpbmcgdG8gY29uZm9ybSB3aXRoIHN0YW5kYXJkIFNXVCBmb3JtYXQNCjxicj41NTk5OiBTdHlsZWRUZXh0IC0gcmVkcmF3UmFuZ2UgZG9lcyBub3QgY2hlY2sgcmFuZ2UgIA0KPGJyPjU3MjI6IFNlbGVjdGluZyBmb250IGNyYXNoZXMgZWNsaXBzZSB3aXRoIGEgamF2YWNvcmUgIA0KPGJyPjU4MTU6IFN0eWxlZFRleHQgLSBzZXRGb250IHJlZnJlc2ggcHJvYmxlbSAgDQo8YnI+NTg0NjogQ29tYm8uc2VsZWN0IGRvZXMgbm90IGlnbm9yZSBhbiBvdXQgb2YgcmFuZ2UgaW5kZXgNCjxicj41OTkwOiBQcmludGluZyBzaW5nbGUgcGFnZSBwcmludHMgZW50aXJlIGRvY3VtZW50ICANCjwvYmxvY2txdW90ZT4NCg0KPGgxPg0KRWNsaXBzZSBQbGF0Zm9ybSBCdWlsZCBOb3Rlczxicj4NClNXVDwvaDE+DQpTV1QgQnVpbGQgMi4wIDAxNCAtIFRodXJzZGF5IE5vdmVtYmVyIDE1LCAyMDAxDQoNCjxoMj4NCjxhIE5BTUU9IlByb2JsZW0gcmVwb3J0cyBmaXhlZCI+PC9hPlByb2JsZW0gcmVwb3J0cyBmaXhlZDwvaDI+DQo8YmxvY2txdW90ZT4NCjQ1NDI6IE1lbnUgYWNjZWxlcmF0b3JzIENUUkwrIC8gYW5kIENUUkwgKyBTSElGVCArIC8gZG9uJ3Qgd29yayAoMUZZQUY4VikNCjxicj40NzU0OiBBcnJvdyBrZXlzIG5vdCBhY2NlcHRlZCBhcyBrZXlib2FyZCBhY2NlbGVyYXRvcnMgKDFHR000VTMpICANCjxicj41ODE1OiBTdHlsZWRUZXh0IC0gc2V0Rm9udCByZWZyZXNoIHByb2JsZW0gIA0KPC9ibG9ja3F1b3RlPg0KDQo8aDE+DQpFY2xpcHNlIFBsYXRmb3JtIEJ1aWxkIE5vdGVzPGJyPg0KU1dUPC9oMT4NClNXVCBCdWlsZCAyLjAgMDEzIC0gVHVlc2RheSBOb3ZlbWJlciAxMywgMjAwMQ0KDQo8aDI+DQo8YSBOQU1FPSJQcm9ibGVtIHJlcG9ydHMgZml4ZWQiPjwvYT5Qcm9ibGVtIHJlcG9ydHMgZml4ZWQ8L2gyPg0KPGJsb2NrcXVvdGU+DQo0ODQ2OiBTdHlsZWRUZXh0IC0gYmlkaSAtIHBhcnRpYWwgc3R5bGluZyBvZiBsaWdhdHVyZXMgKDFHTDNBV1QpICANCjxicj40ODU5OiBTdHlsZWRUZXh0IC0gYmlkaSAtIHByb3ZpZGUgc29sdXRpb24gZm9yIGJpZGkgY29sb3JpbmcgaGFjayAoMUdMMlVOQykNCjxicj41NDkxOiBTdHlsZWRUZXh0IC0gZ2V0U3R5bGVSYW5nZUF0T2Zmc2V0IGFsbG93cyBvZmZzZXQgPT0gZ2V0Q2hhckNvdW50DQo8YnI+NTQ5NzogU3R5bGVkVGV4dCAtIEV4dGVuZGVkTW9kaWZ5IGV2ZW50IG5vdCBzZW50IG9uIHNldFRleHQNCjxicj41NjAyOiBTdHlsZWRUZXh0IC0gcGFnZSBkb3duIGNhdXNlcyBJbGxlZ2FsQXJndW1lbnRFeGNlcHRpb24gaW4gaW52aXNpYmxlL3NtYWxsIHdpZGdldA0KPGJyPjU2MTU6IFN0eWxlZFRleHQgLSB3aW5kb3cgc3RhcnQgZG9lcyBub3QgYWx3YXlzIHdvcmsgIA0KPGJyPjU2MjI6IFN0eWxlZFRleHQgLSBwcmludCBjYXVzZXMgTlBFIHdoZW4gaW52b2tlZCBvbiBlbXB0eSB3aWRnZXQgIA0KPGJyPjU2MjY6IFN0eWxlZFRleHQgLSBwcmludCBkb2VzIG5vdCBjaGVjayBmb3IgbnVsbCBQcmludGVyIGFyZ3VtZW50ICANCjxicj41NjMzOiBTdHlsZWRUZXh0IC0gcmVwbGFjZVRleHRSYW5nZSBhbmQgc2V0VGV4dCBkbyBub3QgY2hlY2sgZm9yIG51bGwgYXJndW1lbnQNCjxicj41NjY0OiBTdHlsZWRUZXh0IC0gU2luZ2xlIGxpbmUgc2hvdWxkIG5vdCBhY2NlcHQgdGFiICANCjxicj41NjczOiBTdHlsZWRUZXh0IC0gU0lOR0xFIGxpbmUgbW9kZSBzdGlsbCBhbGxvd3Mgc29tZSBtdWx0aSBsaW5lIGN1cnNvciBuYXZpZ2F0aW9uDQo8YnI+NTcyMjogU2VsZWN0aW5nIGZvbnQgY3Jhc2hlcyBlY2xpcHNlIHdpdGggYSBqYXZhY29yZQ0KPGJyPjU3MjU6IFBsZWFzZSByZW5hbWUgIkVjbGlwc2UgTGF1bmNoZXIiICANCjxicj41ODAyOiBFQzogQ29udHJvbEV4YW1wbGUgZG9lcyBub3QgcnVuIG9uIFNvbGFyaXMgIA0KPC9ibG9ja3F1b3RlPg0KDQo8aDE+DQpFY2xpcHNlIFBsYXRmb3JtIEJ1aWxkIE5vdGVzPGJyPg0KU1dUPC9oMT4NClNXVCBCdWlsZCAyLjAgMDEyIC0gTW9uZGF5IE5vdmVtYmVyIDUsIDIwMDENCg0KPGgyPg0KPGEgTkFNRT0iUHJvYmxlbSByZXBvcnRzIGZpeGVkIj48L2E+UHJvYmxlbSByZXBvcnRzIGZpeGVkPC9oMj4NCjxibG9ja3F1b3RlPg0KNTQ3MDogVXNlciBpcyBsb3N0IHdoZW4gdHJ5aW5nIHRvIG1vdmUgdmlld3MgYXJvdW5kICANCjxicj41NDg0OiBUYWIgbm8gbG9uZ2VyIHRyYXZlcnNlcyBiZXR3ZWVuIHdpZGdldHMhISEgIA0KPC9ibG9ja3F1b3RlPg0KDQo8aDE+DQpFY2xpcHNlIFBsYXRmb3JtIEJ1aWxkIE5vdGVzPGJyPg0KU1dUPC9oMT4NClNXVCBCdWlsZCAyLjAgMDExIC0gVGh1cnNkYXkgTm92ZW1iZXIgMSwgMjAwMQ0KPGgyPg0KPGEgTkFNRT0iQVBJIENoYW5nZXMiPjwvYT5BUEkgQ2hhbmdlczwvaDI+DQo8Y29kZT5Gb250RGF0YS5zZXRMb2NhbGUoTG9jYWxlKTwvY29kZT4gaGFzIGJlZW4gY2hhbmdlZCB0byA8Y29kZT5Gb250RGF0YS5zZXRMb2NhbGUoU3RyaW5nKTwvY29kZT4uDQo8dWw+DQo8bGk+DQpKMlNFIGNvZGUgY2FuIHNpbXBseSBjcmVhdGUgYSA8Y29kZT5Mb2NhbGU8L2NvZGU+IGFuZCBpbnZva2UgPGNvZGU+dG9TdHJpbmcoKTwvY29kZT4gdG8gcGFzcyBpdCBvbnRvIHRoZSBuZXcgPGNvZGU+c2V0TG9jYWxlPC9jb2RlPi4NCjxsaT4NCkNMREMgY29kZSB3aWxsIGhhdmUgdG8gZm9ybSBhIHN0cmluZyBtYXRjaGluZyB0aGUgZm9ybWF0IHNwZWNpZmllZCBpbiB0aGUgSjJTRSBqYXZhZG9jIG9mIDxjb2RlPmphdmEudXRpbC5Mb2NhbGUudG9TdHJpbmcoKTwvY29kZT4uDQo8L3VsPg0KRXhhbXBsZToNCjxibG9ja3F1b3RlPjxjb2RlPjxwcmU+DQpMb2NhbGVbXSBsb2NhbGVzID0gew0KCUxvY2FsZS5VUywgbmV3IExvY2FsZSgiaXciLCAiSUwiKSwgbmV3IExvY2FsZSgiYXIiLCAiU0EiKSwgbmV3IExvY2FsZSgicnUiLCAiUlUiKSwNCglMb2NhbGUuR0VSTUFOLCBuZXcgTG9jYWxlKCJqYSIsICJKUCIpLA0KCW51bGwsDQp9Ow0KLy8gb2xkIGNvZGU6IGZkLnNldExvY2FsZShsb2NhbGVzW2ldKTsNClN0cmluZyBsb2NhbGUgPSAobG9jYWxlc1tpXSAhPSBudWxsID8gbG9jYWxlc1tpXS50b1N0cmluZygpIDogbnVsbCk7DQpmZC5zZXRMb2NhbGUobG9jYWxlKTsNCjwvcHJlPjwvY29kZT48L2Jsb2NrcXVvdGU+PC9wPg0KDQo8aDI+DQo8YSBOQU1FPSJQcm9ibGVtIHJlcG9ydHMgZml4ZWQiPjwvYT5Qcm9ibGVtIHJlcG9ydHMgZml4ZWQ8L2gyPg0KDQo8YmxvY2txdW90ZT4NCjQ2NjQ6IFN0eWxlZFRleHQgZG9lcyBub3QgY29tcHV0ZSBjb3JyZWN0IHRleHQgd2lkdGggKDFHRUxKWEQpICANCjxicj40ODMyOiBHZXJtYW46IEZvbnRzIGNhbm5vdCBoYW5kbGUgR2VybWFuIGNoYXJhY3RlcnMgKDFHS01ISFkpICANCjxicj40OTYxOiBQcmVmZXJlbmNlcyBkaWFsb2cgZGlzYXBwZWFycyB3aGVuIHlvdSBjbGljayBvbiBjZXJ0YWluIHBhZ2VzDQo8YnI+NTE4MDogT3BlbiBNb3RpZiBmb3IgTGludXggc2hhcmVkIGxpYnJhcmllcyBhcmUgZHVwbGljYXRlZCBpbiBFY2xpcHNlICANCjxicj41MzA0OiBTdHlsZWRUZXh0IC0gQXJyYXlJbmRleE91dE9mQm91bmRzRXhjZXB0aW9uIGluIFN0eWxlZFRleHRCaWRpLnNlZ21lbnRlZFJhbmdlc0Zvcg0KPC9ibG9ja3F1b3RlPg0KDQoNCjxoMT4NCkVjbGlwc2UgUGxhdGZvcm0gQnVpbGQgTm90ZXM8YnI+DQpTV1Q8L2gxPg0KU1dUIEJ1aWxkIDIuMCAwMTAgLSBUaHVyc2RheSBPY3RvYmVyIDI1LCAyMDAxDQoNCjxoMj4NCjxhIE5BTUU9IkJlaGF2aW91ciBjaGFuZ2UiPjwvYT5CZWhhdmlvdXIgY2hhbmdlPC9oMj4NCjxwPg0KMSkgVGhlIERyYWcgVW5kZXIgZWZmZWN0IG9mIHNjcm9sbGluZyBhbmQgZXhwYW5kaW5nIGl0ZW1zIGFzIHlvdSBkcmFnIG92ZXIgdGhlIDxjb2RlPlRyZWU8L2NvZGU+IG9yIDxjb2RlPlRhYmxlPC9jb2RlPiBoYXMgYmVlbiBhZGRlZC4gIFRvIGVuYWJsZSB0aGlzIGRyYWcgdW5kZXIgZWZmZWN0LCBpbiB0aGUgPGNvZGU+RHJhZ092ZXI8L2NvZGU+IGV2ZW50IHNldCB0aGUgPGNvZGU+ZXZlbnQuZmVlZGJhY2s8L2NvZGU+IHRvIGhhdmUgYSBiaXR3aXNlIGNvbWJpbmF0aW9uIG9mIDxjb2RlPkRORC5GRUVEQkFDS19TQ1JPTEwsIERORC5GRUVEQkFDS19FWFBBTkQ8L2NvZGU+IGFuZCAoPGNvZGU+RE5ELkZFRURCQUNLX1NFTEVDVCwgRE5ELkZFRURCQUNLX0lOU0VSVF9CRUZPUkUsIERORC5GRUVEQkFDS19JTlNFUlRfQUZURVI8L2NvZGU+KSAtIHdoZXJlIHRoZSBsYXN0IHRocmVlIGl0ZW1zIGFyZSBtdXR1YWxseSBleGNsdXNpdmUuDQo8YmxvY2txdW90ZT48Y29kZT48cHJlPg0KdGFyZ2V0LmFkZERyb3BMaXN0ZW5lciAobmV3IERyb3BUYXJnZXRBZGFwdGVyKCkgew0KCXB1YmxpYyB2b2lkIGRyYWdPdmVyKERyb3BUYXJnZXRFdmVudCBldmVudCl7DQoJCWV2ZW50LmZlZWRiYWNrID0gRE5ELkZFRURCQUNLX1NFTEVDVCB8IERORC5GRUVEQkFDS19FWFBBTkQgfCBETkQuRkVFREJBQ0tfU0NST0xMOw0KCX0NCn0NCjwvcHJlPjwvY29kZT48L2Jsb2NrcXVvdGU+PC9wPg0KPHA+DQoyKSBPbiBzb21lIG9wZXJhdGluZyBzeXN0ZW1zIGl0IGlzIHByZWZlcnJlZCB0byBtb3ZlIGZpbGVzIGluIGEgZHJhZyBhbmQgZHJvcCBvcGVyYXRpb24gcmF0aGVyIHRoYW4gZm9yIHRoZSBkcm9wIHRhcmdldCB0byBtYWtlIGEgY29weSBvZiB0aGUgZmlsZSBhbmQgdGhlIGRyYWcgc291cmNlIHRvIGRlbGV0ZSB0aGUgb3JpZ2luYWwgZmlsZS4gIFRoZSBvcGVyYXRpb24gb2YgbW92aW5nIHRoZSBmaWxlIGlzIHByZWZvcm1lZCBieSB0aGUgZHJvcCB0YXJnZXQuICBGb3IgdGhlc2UgY2FzZXMsIHRoZSBuZXcgZHJvcCB0eXBlIDxjb2RlPkRORC5EUk9QX1RBUkdFVF9NT1ZFPC9jb2RlPiBoYXMgYmVlbiBhZGRlZC4gIFRoZSBFY2xpcHNlIDxjb2RlPkRyb3BUYXJnZXQ8L2NvZGU+IGRvZXMgbm90IHN1cHBvcnQgdGhpcyBiZWhhdmlvdXIgYnV0IHRoZSBFY2xpcHNlIDxjb2RlPkRyYWdTb3VyY2U8L2NvZGU+IGNhbiByZWNvZ25pemUgdGhpcyBzY2VuYXJpby4gIElmIGFub3RoZXIgYXBwbGljYXRpb24gaGFzIGNob3NlbiB0byBtb3ZlIHRoZSBmaWxlIHJhdGhlciB0aGFuIGNvcHkvZGVsZXRlLCB0aGUgPGNvZGU+RHJhZ0ZpbmlzaGVkPC9jb2RlPiBldmVudCBvbiB0aGUgPGNvZGU+RHJhZ1NvdXJjZTwvY29kZT4gd2lsbCBoYXZlIGFuIDxjb2RlPmV2ZW50LmRldGFpbDwvY29kZT4gdmFsdWUgb2YgPGNvZGU+RE5ELkRST1BfVEFSR0VUX01PVkU8L2NvZGU+Lg0KPGJsb2NrcXVvdGU+PGNvZGU+PHByZT4NCnNvdXJjZS5hZGREcmFnTGlzdGVuZXIgKG5ldyBEcmFnU291cmNlQWRhcHRlciAoKSB7DQoJcHVibGljIHZvaWQgZHJhZ0ZpbmlzaGVkKERyYWdTb3VyY2VFdmVudCBldmVudCkgew0KCQlpZiAoZXZlbnQuZGV0YWlsID09IERORC5EUk9QX1RBUkdFVF9NT1ZFKSB7DQoJCQkvLyBjbGVhbiB1cCBwcmVzZW50YXRpb24gYnV0IGRvIG5vdCBkZWxldGUgdW5kZXJseWluZyBmaWxlDQoJCX0NCgl9DQp9DQo8L3ByZT48L2NvZGU+PC9ibG9ja3F1b3RlPjwvcD4NCg0KPGgyPg0KPGEgTkFNRT0iUHJvYmxlbSByZXBvcnRzIGZpeGVkIj48L2E+UHJvYmxlbSByZXBvcnRzIGZpeGVkPC9oMj4NCg0KPGJsb2NrcXVvdGU+DQoxNzY3OiBEaXNwbGF5IEFTQ0lJIGZvciB2YWx1ZXMgZ3JlYXRlciB0aGFuIDEyNyBmYWlscyAoMUdMRThJNSkgIA0KPGJyPjQ3MjU6IEZvbnREYXRhIHNwZWMgc2hvdWxkIGRpc2FsbG93IG51bGwgbmFtZSAoMUdMMzRIMykgIA0KPGJyPjQ4NDQ6IFRhYiBhcHBlYXJzIG5hcnJvd2VyIHRoYW4gc3BhY2UgKDFHTDJXVFkpICANCjxicj40ODUyOiBHZXJtYW46IENhbm5vdCBzdGFydCBFY2xpcHNlIGluIExpbnV4IDcuMiAoMUdLWVk5OSkgIA0KPGJyPjQ4NjU6IFRhYmxlVHJlZUVkaXRvci5nZXRJdGVtIHJldHVybnMgYW4gaXRlbSBhZnRlciBzZXR0aW5nIGl0IHRvIG51bGwgKDFHTEUwSVEpDQo8YnI+NDkzMjogU3R5bGVkVGV4dEJpZGkgaGFzIGVxdWFscyBidXQgbm8gaGFzaENvZGUgbWV0aG9kICANCjxicj40OTU3OiBTdHlsZWRUZXh0IC0gaW1wbGVtZW50IFN0eWxlZFRleHRCaWRpLmlzTGlnYXRlZCAgDQo8YnI+NTEzMjogU3R5bGVkVGV4dCAtIHJlbW92ZSBoYXJkY29kZWQgbWFyZ2luICANCjxicj41MTc4OiBDaGFuZ2UgQmlkaVV0aWwgY2FsbHMgdG8gaGFuZGxlIHRydWUgVW5pY29kZS9XaW5kb3dzIENFIGNoYW5nZXMNCjwvYmxvY2txdW90ZT4NCg0KPGgxPg0KRWNsaXBzZSBQbGF0Zm9ybSBCdWlsZCBOb3Rlczxicj4NClNXVDwvaDE+DQpTV1QgQnVpbGQgMi4wIDAwOSAtIFRodXJzZGF5IE9jdG9iZXIgMTgsIDIwMDENCg0KPGgyPg0KPGEgTkFNRT0iUHJvYmxlbSByZXBvcnRzIGZpeGVkIj48L2E+UHJvYmxlbSByZXBvcnRzIGZpeGVkPC9oMj4NCg0KPGJsb2NrcXVvdGU+DQo0NDQ0OiBFV1QgLSBpbmNvcnJlY3Qgc2VsZWN0aW9uIGZlZWRiYWNrIHdoZW4gdGhlIGl0ZW0ncyB0ZXh0IGlzIGNoYW5nZWQgKDFGRlAzVTIpDQo8YnI+NDQ0NjogRENSIC0gR3JpZEJhZ0xheW91dCBjb21wYXRpYmxlIExheW91dE1hbmFnZXIgKDFGR0NQTzIpICANCjxicj40NzYyOiBTdHlsZWRUZXh0IC0gZGVmYXVsdCBsaW5lU3R5bGVyIHJlbW92ZSBsaW5lIGJhY2tncm91bmQgY29sb3IgaGFjayAoMUdIQk1VVikNCjxicj40ODE5OiBTdHlsZWRUZXh0IC0gYmlkaSAtIGN1cnNvciBuYXZpZ2F0aW9uICgxR0pMS1NOKSAgDQo8YnI+NDgyMDogU3R5bGVkVGV4dCB3aXRoIHN0eWxlIFNJTkdMRSBkb2VzIG5vdCBoYW5kbGUgQ1IvTEYgd2VsbCAoMUdKTTJaNSkNCjxicj40ODU1OiBTZXZlcmU6IENoZWNrIGJveGVzIGFyZSBibGFjayAoMUdMMFhTSSkgIA0KPGJyPjQ5MDk6IEVDOiBDb21iby5zZXRUZXh0IGRvZXNuJ3Qgd29yayBvbiBMaW51eCAgDQo8YnI+NDkxMDogRUM6IENvbWJvLnNlbGVjdCgpIGZpcmVzIGEgc2VsZWN0ZWQgZXZlbnQgb24gTGludXggb25seSAgDQo8YnI+NTA0NTogQ29udHJvbC5tb3ZlQWJvdmUoKSB0aHJvd3MgTlBFIGlmIGFyZ3VtZW50IGlzIG51bGwgIA0KPC9ibG9ja3F1b3RlPg0KDQoNCjxoMT4NCkVjbGlwc2UgUGxhdGZvcm0gQnVpbGQgTm90ZXM8YnI+DQpTV1Q8L2gxPg0KU1dUIEJ1aWxkIDIuMCAwMDggLSBUaHVyc2RheSBPY3RvYmVyIDExLCAyMDAxDQoNCjxoMj4NCjxhIE5BTUU9IlByb2JsZW0gcmVwb3J0cyBmaXhlZCI+PC9hPlByb2JsZW0gcmVwb3J0cyBmaXhlZDwvaDI+DQoNCjxibG9ja3F1b3RlPg0KMUdMRFFZQjogU1dUOldJTiAtIFRleHQgd2lkZ2V0IHdpdGggRE5EIGVuYWJsZWQsIE1vdXNlRG93biBidXQgbm8gTW91c2VVcA0KPGJyPjFHTEFEQks6IFNXVDpBTEwgLSBTdHlsZWRUZXh0IC0gZ2V0T2Zmc2V0QXRMb2NhdGlvbiBzaG91bGQgdGhyb3cgZXhjZXB0aW9uDQo8YnI+MUdMNFpWRTogU1dUOkFMTCAtIFN0eWxlZFRleHQgLSBnZXRPZmZzZXRBdExvY2F0aW9uKGdldExvY2F0aW9uQXRPZmZzZXQoTikpICE9IE4NCjxicj4xR0tPNk5ZOiBTV1Q6QUxMIC0gQmFja3NwYWNpbmcgaW4gU3R5bGVkVGV4dCBkb2VzIG5vdCBmaXJlIHNlbGVjdGlvbiBjaGFuZ2VkDQo8YnI+MUdLQjFPQzogSVRQSlVJOkFMTCAtIEVycm9yIGluIEphdmFEb2MgaG92ZXIgaGVscA0KPGJyPjFHSzlBUEk6IFNXVDpBTEwgLSBTdHlsZWRUZXh0IC0gYmlkaSAtIG51bWJlcnMsbWl4ZWQgTHRvUi9SdG9MIHRleHQgYW5kIGNhcmV0IHBvc2l0aW9uaW5nDQo8YnI+MUdKTFExNjogU1dUOkFMTCAtIFN0eWxlZFRleHQgLSBiaWRpIC0gYmFja3NwYWNlIGFuZCBkZWxldGUgYmVoYXZpb3INCjxicj4xR0lLN0Q0OiBTV1Q6QUxMIC0gU3R5bGVkVGV4dCAtIFNlbGVjdGlvbiBjbGVhcmVkIHdoZW4gZGVsZXRpb24gZGlzYWxsb3dlZCBieSB2ZXJpZnkgbGlzdGVuZXJzDQo8YnI+MUdET01CSTogU1dUOldJTk5UIC0gU3R5bGVkVGV4dCAtIHJlZHJhd1JhbmdlKCkgZG9lc24ndCBjaGVja1dpZGdldA0KPGJyPjFHREtLM1I6IFNXVDpXSU5OVCAtIFN0eWxlZFRleHQgLSBzZXRDYXJldE9mZnNldCBhbmQgbGluZSBkZWxpbWl0ZXJzIGJ1Zw0KPGJyPjFGTVJRT1Q6IFNXVDpBTEwgLSBObyBudWxsIGFyZ3VtZW50IGNoZWNrcyBpbiBEaWFsb2cgY29uc3RydWN0b3JzDQo8L2Jsb2NrcXVvdGU+DQoNCg0KPGgxPg0KRWNsaXBzZSBQbGF0Zm9ybSBCdWlsZCBOb3Rlczxicj4NClNXVDwvaDE+DQpTV1QgQnVpbGQgMi4wIDAwNyAtIFRodXJzZGF5IE9jdG9iZXIgNCwgMjAwMQ0KDQo8aDI+DQo8YSBOQU1FPSJQcm9ibGVtIHJlcG9ydHMgZml4ZWQiPjwvYT5Qcm9ibGVtIHJlcG9ydHMgZml4ZWQ8L2gyPg0KDQo8YmxvY2txdW90ZT4NCjFHS1pINzQ6IElUUEpVSTpXSU4yMDAwIC0gRGlzYXBwZWFyaW5nIFN0b3AgaWNvbg0KPGJyPjFHS1o4Q1Y6IFNXVDpXSU5OVCAtIHNldFNlbGVjdGlvbiB0cmlnZ2VycyBTZWxlY3Rpb25DaGFuZ2VkIGV2ZW50DQo8YnI+MUdLVTRDNTogU1dUOkFMTCAtIFN0eWxlZFRleHQgLSBiaWRpIC0gc2Nyb2xsaW5nIHRvIHNob3cgY3Vyc29yIHNob3VsZCB0YWtlIGN1cnNvciBkaXJlY3Rpb24gaW50byBhY2NvdW50DQo8YnI+MUdLUFlNSzogU1dUOldJTk5UIC0gU3R5bGVkVGV4dCAtIGJpZGkgLSBjYXJldCBtb3ZlcyB3aGVuIHN3aXRjaGluZyBrZXlib2FyZCBmcm9tIEhlYnJldyB0byBBcmFiaWMNCjxicj4xR0tPR1FPOiBTV1Q6QUxMIC0gSmF2YWRvYzogc2V0U2VsZWN0aW9uIGluIEJ1dHRvbiBhbmQgVG9vbEl0ZW0NCjxicj4xR0tNMk81OiBTV1Q6V0lOTlQgLSBTdHlsZWRUZXh0IC0gYmlkaSAtIEFycmF5SW5kZXhPdXRPZkJvdW5kcyBleGNlcHRpb24gaW4gU3R5bGVkVGV4dEJpZGkuaXNSaWdodFRvTGVmdA0KPGJyPjFHS00xOTM6IFNXVDpXSU5OVCAtIFN0eWxlZFRleHQgLSBiaWRpIGF1dG9zY3JvbGwgbGVmdCBkb2VzIG5vdCBhbHdheXMgc2Nyb2xsIGFsbCB0aGUgd2F5IHRvIHRoZSBsZWZ0DQo8YnI+MUdLS0MwVTogU1dUOkFMTCAtIFRyYWNrZXIgY2FsbHMgT1MuRGlzcGF0Y2hNZXNzYWdlKG1zZykgb24gd2luZG93cyBidXQgZG9lcyBub3Qgb24gTGludXguDQo8YnI+MUdJVkFYWDogU1dUOkFMTCAtIFN0eWxlZFRleHQgLSBFZGl0b3JzIHNob3VsZCBzdXBwb3J0IHNoaWZ0LWJhY2tzcGFjZQ0KPGJyPjFHRUxRMTQ6IFNXVDpXSU5OVCAtIFN0eWxlZFRleHQgLSBEZWZhdWx0Q29udGVudCAtIGhhbmRsZSB3ZWlyZCBsaW5lIGRlbGltaXRlciBjYXNlcw0KPGJyPjFHRThMRzA6IFNXVDpMaW51eCAtIFRvb2xiYXIgaXMgbm90IHNob3dpbmcgdGhlIHNlcGFyYXRvcnMuDQo8L2Jsb2NrcXVvdGU+DQoNCg0KPGgxPg0KRWNsaXBzZSBQbGF0Zm9ybSBCdWlsZCBOb3Rlczxicj4NClNXVDwvaDE+DQpTV1QgQnVpbGQgMi4wIDAwNiAtIFRodXJzZGF5IFNlcHQgMjcsIDIwMDENCg0KPGgyPg0KPGEgTkFNRT0iUHJvYmxlbSByZXBvcnRzIGZpeGVkIj48L2E+UHJvYmxlbSByZXBvcnRzIGZpeGVkPC9oMj4NCg0KPGJsb2NrcXVvdGU+DQoxR0hXQTE5OiBTV1Q6V0lOTlQgLSBQcm9ibGVtIHdpdGggY2FsbGJhY2tzIGZyb20gQ0NvbWJvDQo8YnI+MUdIRkRQVjogU1dUOldJTjIwMDAgLSBTZXR0aW5nIHNlbGVjdGlvbiBpbiBUYWJsZSBkb2VzIG5vdCB1cGRhdGUgZm9jdXMgaXRlbQ0KPGJyPjFHRjY0NFY6IElUUFVJOkxpbnV4IC0gVW56b29tIGlzIGNoYW5naW5nIHRoZSBhY3RpdmUgZWRpdG9yLg0KPGJyPjFHS00zWFM6IFNXVDpXSU5OVCAtIFN0eWxlZFRleHQgLSBiaWRpIGF1dG9zY3JvbGwgbGVmdDogc2VsZWN0aW9uIHJlc2V0IG9uIG1vdXNlIG1vdmUNCjwvYmxvY2txdW90ZT4NCg0KDQo8aDE+DQpFY2xpcHNlIFBsYXRmb3JtIEJ1aWxkIE5vdGVzPGJyPg0KU1dUPC9oMT4NClNXVCBCdWlsZCAyLjAgMDA1IC0gRnJpZGF5IFNlcHQgMjEsIDIwMDENCg0KPGgyPg0KPGEgTkFNRT0iUHJvYmxlbSByZXBvcnRzIGZpeGVkIj48L2E+UHJvYmxlbSByZXBvcnRzIGZpeGVkPC9oMj4NCg0KPGJsb2NrcXVvdGU+DQoxR0swOVowOiBTV1Q6TGludXggLSBzZXRFbmFibGVkKGZhbHNlKSBoYXMgbm8gZWZmZWN0IG9uIGFUb29sYmFyDQo8YnI+MUdKWlpTNjogU1dUOkxpbnV4IC0gRmlsZSBEaWFsb2cgcmV0dXJucyBhIGRpcmVjdG9yeQ0KPGJyPjFHRjdTTUM6IElUUFVJOkxpbnV4IC0gV3JvbmcgYmcgZm9yIGNsb3NlIGJ1dHRvbiBvbiBlZGl0b3IgdGFiDQo8L2Jsb2NrcXVvdGU+DQoNCg0KPGgxPg0KRWNsaXBzZSBQbGF0Zm9ybSBCdWlsZCBOb3Rlczxicj4NClNXVDwvaDE+DQpTV1QgQnVpbGQgMi4wIDAwNCAtIFRodXJzZGF5IFNlcHQgMTMsIDIwMDENCg0KPGgyPg0KPGEgTkFNRT0iQVBJIEJlaGF2aW91ciBjaGFuZ2UiPjwvYT5BUEkgQmVoYXZpb3VyIGNoYW5nZTwvaDI+DQpUaGUgYmVoYXZpb3VyIG9mIGRpc3Bvc2UgZm9yIEdDcyBoYXMgYmVlbiBtb2RpZmllZCBzdWNoIHRoYXQgYXR0ZW1wdGluZyB0byBkaXNwb3NlIG9mDQphIEdDIG9uIGEgY29udHJvbCA8ZW0+YWZ0ZXI8L2VtPiB0aGUgY29udHJvbCBoYXMgYmVlbiBkaXNwb3NlZCB3aWxsIGdlbmVyYXRlIGFuDQpTV1RFeGNlcHRpb24uICBUaGlzIGZpeGVzIGFuIE9TIHJlc291cmNlIGxlYWsgYW5kIHBvdGVudGlhbCBHUEYgc2l0dWF0aW9uLg0KDQo8aDI+DQo8YSBOQU1FPSJQcm9ibGVtIHJlcG9ydHMgZml4ZWQiPjwvYT5Qcm9ibGVtIHJlcG9ydHMgZml4ZWQ8L2gyPg0KDQo8YmxvY2txdW90ZT4NCjFHSlVBS0w6IFNXVDpOZXV0cmlubyAtIENvbnRyb2wuaW50ZXJuYWxfbmV3X0dDKCkgbmVlZHMgIWlzVmFsaWRXaWRnZXQoKSBjaGVjaw0KPGJyPjFHSk41Mk46IFNXVDpMaW51eCAtIFRleHQgcHJpbnRzIHN5c3RlbSBlcnJvciBtZXNzYWdlIGZvciBob3Jpem9udGFsIHNjcm9sbGJhcg0KPGJyPjFHSkJPQVY6IFNXVDpBTEwgLSBTY3JvbGxlZENvbXBvc2l0ZSBidWdzDQo8YnI+MUdJWEVMSTogU1dUOkFMTCAtIE5lZWQgQ2FyZXQgdG8gYWxsb3cgYml0bWFwcyBzbyBiaWRpIGNhcmV0IGNhbiBiZSBjcmVhdGVkDQo8YnI+MUdJNU8xVDogU1dUOldJTk5UIC0gQ29tcG9zaXRlLnNldEZvY3VzIHRha2VzIGZvY3VzIHdoZW4gaXQgc2hvdWxkIG5vdA0KPGJyPjFHSE9ORDc6IFNXVDpXSU4yMDAwIC0gU2VsZWN0aW9uIHByb2JsZW0gd2l0aCBzaW5nbGUtc2VsZWN0aW9uIHRyZWVzDQo8YnI+MUdIRzk5MDogU1dUOkFMTCAtIFByb2JhYmxlIGJ1ZyBpbiBTbGlkZXIgcGFnZSBpbmNyZW1lbnQgc2V0dGluZw0KPGJyPjFHRU5KNjA6IFNXVDpBTEwgLSBTY3JvbGxlZENvbXBvc2l0ZSBzaG91bGQgaW5jbHVkZSBleGFtcGxlIGluIGl0cyBjbGFzcyBjb21tZW50DQo8YnI+MUdFQTdLNzogSVRQVUk6TGludXggLSBEZWZhdWx0IGJ1dHRvbiBub3Qgd29ya2luZw0KPC9ibG9ja3F1b3RlPg0KDQoNCjxoMT4NCkVjbGlwc2UgUGxhdGZvcm0gQnVpbGQgTm90ZXM8YnI+DQpTV1Q8L2gxPg0KU1dUIEJ1aWxkIDIuMCAwMDMgLSBGcmlkYXkgU2VwdCAwNywgMjAwMQ0KDQo8aDI+DQo8YSBOQU1FPSJOZXcgQVBJcyI+PC9hPk5ldyBBUElzPC9oMj4NCg0KPGJsb2NrcXVvdGU+DQpGb250RGF0YS5zZXRMb2NhbGUoamF2YS51dGlsLkxvY2FsZSkgYWRkZWQNCjxicj5DYXJldC5nZXRJbWFnZSgpIGFkZGVkDQo8YnI+Q2FyZXQuc2V0SW1hZ2UoSW1hZ2UpIGFkZGVkDQo8YnI+R0MuZmlsbEdyYWRpZW50UmVjdGFuZ2xlKGludCwgaW50LCBpbnQsIGludCwgYm9vbGVhbikgYWRkZWQNCjwvYmxvY2txdW90ZT4NCg0KPGgyPg0KPGEgTkFNRT0iUHJvYmxlbSByZXBvcnRzIGZpeGVkIj48L2E+UHJvYmxlbSByZXBvcnRzIGZpeGVkPC9oMj4NCg0KPGJsb2NrcXVvdGU+DQoxR0pNN0tNOiBTV1Q6TGludXggLSBUYWJsZSBhbmQgVHJlZSByZXR1cm4gYSBkaWZmZXJlbnQgc2l6ZSBmb3IgZXZlcnkgc2Vjb25kIGNhbGwgdG8gY29tcHV0ZVNpemUNCjxicj4xR0pMS0hFOiBTV1Q6U1BBUkMgLSBHUCBvbiAiSW5zdGFsbGVkIEpSRXMiIHByZWZlcmVuY2UgcGFnZQ0KPGJyPjFHSkxLNjM6IFNXVDpBTEwgLSBTdHlsZWRUZXh0IC0gYmlkaSAtIGtleWJvYXJkIHN3aXRjaGluZw0KPGJyPjFHSkxFMzY6IFNXVDpXSU5OVCAtIEFscGhhIGRhdGEgcmVkcmF3aW5nIGltcHJvcGVybHkgYWZ0ZXIgb2NjbHVzaW9uDQo8YnI+MUdKQTJMNzogU1dUOldJTiAtIERpZmZlcmVudCBiZWhhdmlvciBmb3IgR0MuZHJhd1N0cmluZygpIGFyZ3Mgb24gV2luIHZzLiBQaG90b24NCjxicj4xR0laMFA2OiBTV1Q6V0lOTlQgLSBHQy5kcmF3SW1hZ2UoKSBwcm9ibGVtIHdpdGggdHJhbnNwYXJlbnQgcGl4ZWxzDQo8YnI+MUdJWEVMSTogU1dUOkFMTCAtIE5lZWQgQ2FyZXQgdG8gYWxsb3cgYml0bWFwcyBzbyBiaWRpIGNhcmV0IGNhbiBiZSBjcmVhdGVkDQo8YnI+MUdJN0ZRRjogU1dUOkFMTCAtIENhbid0IHNldCBmb2N1cyB0byBUYXNrcyBWaWV3IGJ5IEtleWJvYXJkDQo8YnI+MUdJN0VCTDogU1dUOkxpbnV4IC0gYXBpIHR5cG86IFRvb2xJdGVtPj5nZXREaXNhYmxlZG1hZ2UoKQ0KPGJyPjFHSTNQODY6IFNXVDpBTEwgLSBTZW1hbnRpYyBkaWZmZXJlbmNlcyBiZXR3ZWVuIGVtdWxhdGVkIFRhYmxlIGFuZCBUcmVlIGNvZGViYXNlIG9uIE1vdGlmIGFuZCBQaG90b24NCjxicj4xR0kxV0VBOiBTV1Q6TmV1dHJpbm8gLSBUZXh0IHNlbGVjdGlvbiBjb2RlIG5vdCB3b3JraW5nIGNvcnJlY3RseQ0KPGJyPjFHSFdFRDI6IFNXVDpXSU5OVCAtIEdDLnN0cmluZ0V4dGVudCgpIG5vdCBjb3JyZWN0IGZvciBXaW5kb3dzIEFyaWFsIGZvbnQNCjxicj4xR0hXQjdHOiBTV1Q6TGludXggLSBMaW51eCBmb250IGRpYWxvZyBkb2Vzbid0IG9wZW4gd2l0aCBnaXZlbiB2YWx1ZXMuDQo8YnI+MUdIVlJGWTogU1dUOk5ldXRyaW5vIC0gVGV4dCNDbGVhclNlbGVjdGlvbiBjaGFuZ2VzIHRoZSBDYXJldFBvc2l0aW9uIGluIGEgU0lOR0xFLWxpbmUgd2lkZ2V0DQo8YnI+MUdIVkxWNjogU1dUOk5ldXRyaW5vIC0gVGV4dCNTZXRUb3BJbmRleCBhbmQgZ2V0VG9wSW5kZXggaW5jb25zaXN0ZW50DQo8YnI+MUdIT0o2VDogU1dUOk5ldXRyaW5vIC0gVGV4dCNzZXRTZWxlY3Rpb24gaW5jb25zaXN0ZW50IGJldHdlZW4gU0lOR0xFIGFuZCBNVUxUSQ0KPGJyPjFHSEJMUkE6IFNXVDpOZXV0cmlubyAtIERpc3BsYXkuZ2V0Qm91bmRzKCkgcmV0dXJucyBpbmNvcnJlY3QgaW5mbw0KPGJyPjFHSDQ4VVE6IFNXVDpOZXV0cmlubyAtIEVudGVyIGtleSBkb2VzIG5vdCBpbnNlcnQgbmV3IGxpbmUgd2l0aCBUZXh0Lk1VTFRJIHdpZGdldA0KPGJyPjFHR1QwVE06IFNXVDpOZXV0cmlubyAtIEdDI2RyYXdBcmMgaW5jb25zaXN0ZW50IGJldHdlZW4gTlQgYW5kIE5UTw0KPGJyPjFHRzFEQlQ6IFNXVDpTUEFSQyAtIFNvbGFyaXMgbG9zZXMgaW5wdXQgY2hhcmFjdGVycw0KPGJyPjFHRzA3SFc6IFNXVDpMaW51eCAtIFRyZWUuZ2V0SXRlbSgpIG1vZGlmaWVzIGl0cyBhcmd1bWVudCBvbiBNb3RpZg0KPGJyPjFHRzAwNjk6IFNXVDpMaW51eCAtIFdlaXJkIGxheW91dCBpc3N1ZXMgc2VlbiBpbiBDb250cm9sIEV4YW1wbGUNCjxicj4xR0ZaWkxLOiBTV1Q6TGludXggLSBUb29sSXRlbXMgbm90IGRpc2FibGVkIHdoZW4gY29udGFpbmluZyBUb29sQmFyIGlzIGRpc2FibGVkDQo8YnI+MUdGWlUzWDogU1dUOkFMTCAtIEltYWdlTG9hZGVyLmxvYWQoU3RyaW5nKSBub3QgY2xvc2luZyBmaWxlIGlucHV0IHN0cmVhbQ0KPGJyPjFHRlpQRFA6IFNXVDpMaW51eCAtIENvbWJvIGJveCB3aXRoIFNXVC5TSU1QTEUgc3R5bGUgZG9lcyBub3QgcmVzcGVjdCBEaXNhYmxlZCBmbGFnICh2aXN1YWxseSkNCjxicj4xR0ZXODVIOiBTV1Q6QUxMIC0gUHJpbnRlci5nZXRQcmludGVyRGF0YSgpIGhhcyBzdGFsZSBjb21tZW50DQo8YnI+MUdGVzZNUTogU1dUOkFMTCAtIERDUjogUHJvZ3JhbSBjbGFzcyBuZWVkcyAuZXF1YWxzKCkgYW5kIC5oYXNoQ29kZSgpDQo8YnI+MUdGVzRZTjogU1dUOkFMTCAtIEhlbHAgS2V2aW5IIGFkZCBwcmludGluZyB0byBFY2xpcHNlDQo8YnI+MUdGUUtEVDogU1dUOkFMTCAtIEltYWdlLnNldEJhY2tncm91bmQoKSAvIGdldEJhY2tncm91bmQoKSBhc3ltbWV0cnkNCjxicj4xR0ZPTlZXOiBTV1Q6TGludXggLSBFbXB0eSBDb21ibyBzaG91bGQgbm90IGZpcmUgU2VsZWN0aW9uIGV2ZW50DQo8YnI+MUdGTDBIUDogU1dUOkxpbnV4IC0gUmVtYWluaW5nIGl0ZW1zIGluIFNXVCBjb21tZW50cyB0byBmaXgNCjxicj4xR0VUOTBEOiBTV1Q6TGludXggLSBTV1RFeGNlcHRpb25zIGJyaW5nIGRvd24gRWNsaXBzZQ0KPGJyPjFHRVNRQks6IElUUEpVSTpXSU5OVCAtIEhvdyB0byBnZXQgYWNjZXNzIHRvIHBvcC11cCBtZW51cyBvZiB0aGUgSmF2YSBlZGl0b3IgPw0KPGJyPjFHRUxYNEE6IElUUFVJOkFMTCAtIEhvdmVyIGhlbHAgaXMgbm90IHZpc2libGUgaWYgcGFuZSBpcyBkcmFnZ2VkIG91dCBvZiB3b3JrYmVuY2gNCjxicj4xR0VIV0FGOiBJVFBVSTpXSU4yMDAwIC0gQ2FuJ3QgZW50ZXIgdGV4dCBpbiBhIFN3aW5nIFRleHRGaWVsZCBvciBUZXh0QXJlYQ0KPGJyPjFHRTVFQ0o6IElUUFVJOldJTjIwMDAgLSBIb3ZlciBoZWxwIGZvciB0aXRsZSBiYXIgYnV0dG9ucyBhcHBlYXJzIGJlaGluZCBkZXRhY2hlZCB2aWV3DQo8YnI+MUdEWDdSODogSVRQVUk6QUxMIC0gU1dUIHNldFRleHQoKSBkb2VzIE5PVCBoYXZlIGFueSB3YXkgdG8gYXZvaWQgbWFraW5nIG1uZW1vbmljcy4NCjxicj4xR0Q1VUhBOiBTV1Q6V0lOMjAwMCAtIERvdWJsZS1jbGlja2luZyBvbiB0b29sYmFyIGl0ZW0gZ2l2ZXMgZG91YmxlLWNsaWNrIGV2ZW50IG9uIHRvb2xiYXINCjxicj4xR0JYSUVPOiBTV1Q6QUxMIC0gRENSOiBJbmNsdWRlIGN1cnNvciBwb3MgaW4gVHJhY2tlciBtb3ZlIGV2ZW50DQo8YnI+MUc0SU1RMzogU1dUOldJTk5UIC0gVGFibGUgaW1hZ2VzIGluY29ycmVjdCBhZnRlciByYXBpZCByZW1vdmFsIGFuZCBjcmVhdGlvbg0KPC9ibG9ja3F1b3RlPg0KDQo8aDE+DQpFY2xpcHNlIFBsYXRmb3JtIEJ1aWxkIE5vdGVzPGJyPg0KU1dUPC9oMT4NClNXVCBCdWlsZCAyLjAgMDAyIC0gV2VkbmVzZGF5IEp1bHkgMTgsIDIwMDENCg0KPGgyPg0KPGEgTkFNRT0iUHJvYmxlbSByZXBvcnRzIGZpeGVkIj48L2E+UHJvYmxlbSByZXBvcnRzIGZpeGVkPC9oMj4NCg0KPGJsb2NrcXVvdGU+DQoxR0daMTNUOiBTV1Q6TmV1dHJpbm8gLSBpbnZhbGlkIG1vdXNlIHN0YXRlIG9jY3VyaW5nIGluIFBob3Rvbg0KPGJyPjFHR1JDQ1M6IFNXVDpOZXV0cmlubyAtIExhYmVsIGRvZXMgbm90IHdyYXAgaW4gU1dUMDEyNQ0KPGJyPjFHR0FPTjI6IFNXVDpBTEwgLSBTY2FsaW5nIGltYWdlIHdpdGggYWxwaGFzIGRvZXMgbm90IHdvcmsgY29ycmVjdGx5DQo8YnI+MUdGWlFWUTogU1dUOkxpbnV4IC0gVmVydGljYWwgUHJvZ3Jlc3NCYXIgZ3Jvd3MgaW5jb3JyZWN0bHkNCjxicj4xR0ZRQTE4OiBTV1Q6TGludXggLSBDaGVlc2Ugd2l0aCBHQyBkcmF3Um91bmRlZFJlY3RhbmdsZSgpIG9uIE1vdGlmDQo8YnI+MUdGUEs2RzogU1dUOkxpbnV4IC0gTW90aWYgZmlsbFBvbHlnb24oKSBzcGVjaWZpZXMgaW1wcm9wZXIgaGludA0KPC9ibG9ja3F1b3RlPg0KDQo8aDE+DQpFY2xpcHNlIFBsYXRmb3JtIEJ1aWxkIE5vdGVzPGJyPg0KU1dUPC9oMT4NClNXVCBCdWlsZCAyLjAgMDAxIC0gVGh1cnNkYXkgSnVseSAxMiwgMjAwMQ0KDQo8aDI+DQo8YSBOQU1FPSJQcm9ibGVtIHJlcG9ydHMgZml4ZWQiPjwvYT5Qcm9ibGVtIHJlcG9ydHMgZml4ZWQ8L2gyPg0KDQo8YmxvY2txdW90ZT4NCjFHR0VUNzY6IFNXVDpOZXV0cmlubyAtIENhbnZhcyBkb2VzIG5vdCByZXNwb25kIHRvIHNldEZvY3VzKCkNCjxicj4xR0dBUzVQOiBTV1Q6TmV1dHJpbm8gLSBQaG90b24gb24gUU5YIDYuMS54IG5lZWRzIFNXVCBuYXRpdmUgY2hhbmdlcw0KPGJyPjFHRzk2Uk86IFNXVDpOZXV0cmlubyAtIGRyYXdPdmFsIGFuZCBmaWxsT3ZhbCBub3QgY29tcGF0aWJsZQ0KPGJyPjFHRzhaTFY6IFNXVDpXSU5OVCAtIGRyYXdPdmFsIGJlaGF2ZXMgZGlmZmVyZW50bHkgb24gV2luZG93cyB2cy4gb3RoZXIgcGxhdGZvcm1zDQo8YnI+MUdGS1lEOTogU1dUOkxpbnV4IC0gLUhBTkctIChYc2VydmVyKSBXaGVuIHBlcmZvbWluZyBkaXNwbGF5Lndha2UoKSBpbiBhIERORCBkcmFnU3RhcnQoKQ0KPGJyPjFHRktLMzc6IFNXVDpMaW51eCAtIEZpbGVWaWV3ZXIgZXhhbXBsZXMgaXNzdWVzDQo8YnI+MUdGQkhYNjogU1dUOkFMTCAtIENUYWJJdGVtIHRvb2wgdGlwIGZsYXNoaW5nDQo8YnI+MUdGOVpNVDogU1dUOlNQQVJDIC0gOC1iaXQgSWNvbnMgYXJlIGxvc2luZyBjb2xvcnMNCjxicj4xR0Y5WkpHOiBTV1Q6U1BBUkMgLSBJY29ucyBhcmUgYmVpbmcgbWFza2VkIGluY29ycmVjdGx5IG9uIFNvbGFyaXMNCjxicj4xR0Y5WUhEOiBJVFBVSTpXSU4yMDAwIC0gU1dURXhjZXB0aW9uOiBoZWxwIHZpZXcNCjxicj4xR0Y5WTMyOiBTV1Q6U1BBUkMgLSAyNC1iaXQgTVNCIEljb25zIGFyZSB3cm9uZyBjb2xvciAoZ3JlZW5pc2gpDQo8YnI+MUdGMEQwNTogU1dUOkxpbnV4IC0gR1BGcyB3aGVuIHJ1bm5pbmcgSlVuaXQgVGVzdFJ1bm5lciBpbiBKOSBBV1QNCjxicj4xR0VVWlpDOiBTV1Q6QUxMIC0gIk5hbWUiIG9mIHBsdWdpbiBpbmNvbnNpc3RhbnQgd2l0aCBvdGhlciBwbHVnaW5zDQo8YnI+MUdFVERQNTogSVRQVUk6TGludXggLSBOUEUgd2hpbGUgY2xvc2luZyBlZGl0b3Igb24gbGludXgNCjxicj4xR0RWUlQ1OiBTV1Q6TmV1dHJpbm8gLSBBbHBoYSBjaGFubmVsIG1lbW9yeSBsZWFrDQo8YnI+MUdEUlhaUjogSVRQSlVJOkxpbnV4IC0gU1dUOiBDb250ZXh0LU1lbnVzIGlzc3VlIHVuZGVyIExpbnV4IA0KPGJyPjFHRDBPU0s6IFNXVDpBTEwgLSBBUEkgLSBwYWNrYWdlIGphdmFkb2MgZm9yIFNXVCBwYWNrYWdlcyBtaXNzaW5nDQo8YnI+MUdDSFM3NTogU1dUOldJTk5UIC0gd29ya2JlbmNoIGV4aXRzIGR1cmluZyBleHBhbmQgY29sbGFwc2UNCjxicj4xR0NGVVMwOiBTV1Q6QUxMIC0gQ1RhYkZvbGRlciAiZmxvYXRpbmciIFggc3RpY2tzIHNvbWV0aW1lcw0KPGJyPjFHQVI5NU86IFNXVDpBTEwgLSBSZW1vdmUgU21hbGx0YWxrIGNvbW1lbnRzIGZyb20gU1dUIGNvZGUNCjxicj4xR0FRUk5EOiBTV1Q6QUxMIC0gRE9DOiBXcml0ZSBnb29kIEphdmFkb2MgY29tbWVudHMgZm9yIGFsbCBvZiBTV1QNCjxicj4xRzk3STI4OiBTV1Q6TGludXggLSBUb29sIGJhciBidXR0b25zIGRvIG5vdCBhbHdheXMgd29yaw0KPGJyPjFHODRBWkI6IElUUERVSTpBTEwgLSBSZW5hbWUgdHJ1bmNhdGVzIG5hbWUNCjxicj4xRzg0NUVaOiBTV1Q6V0lOMjAwMCAtIFNwZWMgZm9yIExheW91dC5jb21wdXRlU2l6ZSgpIGlzIHRydW5jYXRlZA0KPGJyPjFHN1lYTEI6IFNXVDpXSU4gLSBTdHlsZWRUZXh0IC0gTkxTIFN1cHBvcnQNCjxicj4xRzdOU0hSOiBTV1Q6QUxMIC0gV2lkZ2V0LmFkZExpc3RlbmVyKGludCwgTGlzdGVuZXIpIHZzLiBhZGRpbmcgdHlwZWQgbGlzdGVuZXJzDQo8YnI+MUc0WERKTzogU1dUOkxpbnV4IC0gVHJlZSBuZWVkcyB0byBkaXNwbGF5IGFuIGluc2VydCBtYXJrZXINCjxicj4xRzBZOE5aOiBTV1Q6QUxMIC0gQ29tYm8gYm94IGRvZXNuJ3Qgc2VuZCBrZXkgYW5kIG1vdXNlIGV2ZW50cyANCjxicj4xRlhBVkxGOiBTV1Q6V0lOTlQgLSBEaXNhYmxlZCB0b29sYmFyIGljb25zIGRvbid0IGFkYXB0IHRvIGFwcGVhcmFuY2UgY2hhbmdlcw0KPGJyPjFGVjFTMTg6IFNXVDpBTEwgLSBOZWVkIG1vcmUgV01fKiBtZXNzYWdlcyBwYXNzZWQgdG8gQWN0aXZlWCBDb250cm9sDQo8YnI+MUZUV1g1NTogU1dUOkFMTCAtIEluY29uc2lzdGFudCBjb21tZW50aW5nIG9mIHdoaWNoIFNXVCBvYmplY3RzIG5lZWQgdG8gYmUgZGlzcG9zZWQuDQo8L2Jsb2NrcXVvdGU+DQo8YSBocmVmPSJoZ2xlZ2FsLmh0bSI+PGltZyBTUkM9Im5naWJtY3B5LmdpZiIgQk9SREVSPTAgaGVpZ2h0PTEyIHdpZHRoPTE5NT48L2E+DQo8L2JvZHk+DQo8L2h0bWw+DQo=