Files

7.5 KiB

IyBDb250cmlidXRpbmcgdG8gTW9rbyBDb25zdWx0aW5nIFByb2plY3RzDQoNClRoYW5rIHlvdSBmb3IgeW91ciBpbnRlcmVzdCBpbiBjb250cmlidXRpbmcuIEFsbCBNb2tvIENvbnN1bHRpbmcgcmVwb3NpdG9yaWVzIGZvbGxvdyB0aGlzIHVuaXZlcnNhbCB3b3JrZmxvdyBhbmQgdmVyc2lvbiBwb2xpY3kuDQoNCiMjIEJyYW5jaGluZyBXb3JrZmxvdw0KDQpgYGANCmZlYXR1cmUvKiDilIDilIBQUuKUgOKUgD4gZGV2IOKUgOKUgGRyYWZ0IFBS4pSA4pSAPiAocmVuYW1lZCB0byByYykg4pSA4pSAbWVyZ2XilIDilIA+IG1haW4NCmBgYA0KDQojIyMgU3RlcCBieSBzdGVwDQoNCjEuICoqQ3JlYXRlIGEgZmVhdHVyZSBicmFuY2gqKiBmcm9tIGBkZXZgOg0KICAgYGBgYmFzaA0KICAgZ2l0IGNoZWNrb3V0IGRldiAmJiBnaXQgcHVsbA0KICAgZ2l0IGNoZWNrb3V0IC1iIGZlYXR1cmUvbXktY2hhbmdlDQogICBgYGANCg0KMi4gKipXb3JrIGFuZCBjb21taXQqKiBvbiB5b3VyIGZlYXR1cmUgYnJhbmNoLiBQdXNoIHRvIG9yaWdpbi4NCg0KMy4gKipPcGVuIGEgUFIqKjogYGZlYXR1cmUvbXktY2hhbmdlYCDihpIgYGRldmAuIEFmdGVyIHJldmlldyBhbmQgY2hlY2tzLCBtZXJnZSBpdC4NCg0KNC4gKipXaGVuIHJlYWR5IGZvciByZWxlYXNlKiosIG9wZW4gYSAqKmRyYWZ0IFBSKio6IGBkZXZgIOKGkiBgbWFpbmAuDQogICAtIFRoaXMgYXV0b21hdGljYWxseSByZW5hbWVzIHRoZSBzb3VyY2UgYnJhbmNoIHRvIGByY2AgKHJlbGVhc2UgY2FuZGlkYXRlKQ0KICAgLSBBbiBSQyBwcmUtcmVsZWFzZSBpcyBidWlsdCBhbmQgdXBsb2FkZWQNCg0KNS4gKipBbHBoYSBhbmQgYmV0YSBicmFuY2hlcyoqIGFyZSBjcmVhdGVkIGJ5IG1hbnVhbGx5IHJlbmFtaW5nIHRoZSBicmFuY2ggYmVmb3JlIHRoZSBSQyBzdGFnZToNCiAgIC0gUmVuYW1lIGBkZXZgIHRvIGBhbHBoYWAgZm9yIGVhcmx5IHRlc3Rpbmcg4oaSIGFscGhhIHByZS1yZWxlYXNlIGlzIGJ1aWx0DQogICAtIFJlbmFtZSBgYWxwaGFgIHRvIGBiZXRhYCBmb3IgZmVhdHVyZS1jb21wbGV0ZSB0ZXN0aW5nIOKGkiBiZXRhIHByZS1yZWxlYXNlIGlzIGJ1aWx0DQogICAtIFdoZW4gdGhlIGRyYWZ0IFBSIGlzIGNyZWF0ZWQsIHRoZSBicmFuY2ggaXMgcmVuYW1lZCB0byBgcmNgDQoNCjYuICoqT25jZSBQUiBjaGVja3MgcGFzcyoqIG9uIHRoZSBgcmNgIGJyYW5jaCwgbWFyayB0aGUgUFIgYXMgcmVhZHkgYW5kIG1lcmdlIHRvIGBtYWluYC4NCg0KNy4gKipNZXJnaW5nIHRvIG1haW4qKiB0cmlnZ2VycyB0aGUgc3RhYmxlIHJlbGVhc2UgcGlwZWxpbmU6DQogICAtIE1pbm9yIHZlcnNpb24gYnVtcCAoZS5nLiwgYDAyLjA5Lnh4YCDihpIgYDAyLjEwLjAwYCkNCiAgIC0gU3RhYmlsaXR5IHN1ZmZpeCBzdHJpcHBlZCAoY2xlYW4gdmVyc2lvbikNCiAgIC0gR2l0ZWEgcmVsZWFzZSBjcmVhdGVkIHdpdGggWklQL3Rhci5neiBwYWNrYWdlcw0KICAgLSBgdXBkYXRlcy54bWxgIHVwZGF0ZWQgKEpvb21sYSBleHRlbnNpb25zKQ0KICAgLSBgZGV2YCBicmFuY2ggcmVjcmVhdGVkIGZyb20gYG1haW5gDQoNCiMjIyBCcmFuY2ggc3VtbWFyeQ0KDQp8IEJyYW5jaCB8IFB1cnBvc2UgfCBDcmVhdGVkIGJ5IHwNCnwtLS0tLS0tLXwtLS0tLS0tLS18LS0tLS0tLS0tLS18DQp8IGBmZWF0dXJlLypgIHwgTmV3IGZlYXR1cmVzIGFuZCBmaXhlcyB8IERldmVsb3BlciB8DQp8IGBkZXZgIHwgSW50ZWdyYXRpb24gYnJhbmNoIHwgQXV0by1yZWNyZWF0ZWQgYWZ0ZXIgcmVsZWFzZSB8DQp8IGBhbHBoYWAgfCBBbHBoYSBwcmUtcmVsZWFzZSB0ZXN0aW5nIHwgTWFudWFsIHJlbmFtZSBmcm9tIGBkZXZgIHwNCnwgYGJldGFgIHwgQmV0YSBwcmUtcmVsZWFzZSB0ZXN0aW5nIHwgTWFudWFsIHJlbmFtZSBmcm9tIGBhbHBoYWAgfA0KfCBgcmNgIHwgUmVsZWFzZSBjYW5kaWRhdGUgfCBBdXRvLXJlbmFtZWQgb24gZHJhZnQgUFIgdG8gbWFpbiB8DQp8IGBtYWluYCB8IFN0YWJsZSByZWxlYXNlcyB8IFByb3RlY3RlZCwgbWVyZ2Ugb25seSB8DQp8IGB2ZXJzaW9uL1hYLllZLlpaYCB8IEFyY2hpdmVkIHJlbGVhc2Ugc25hcHNob3RzIHwgQXV0by1jcmVhdGVkIGJ5IENJIHwNCg0KIyMjIFByb3RlY3RlZCBicmFuY2hlcw0KDQp8IEJyYW5jaCB8IERpcmVjdCBwdXNoIHwgTWVyZ2UgdmlhIHwNCnwtLS0tLS0tLXwtLS0tLS0tLS0tLS18LS0tLS0tLS0tLS18DQp8IGBtYWluYCB8IEJsb2NrZWQgKENJIGJvdCB3aGl0ZWxpc3RlZCkgfCBQUiBtZXJnZSBvbmx5IHwNCnwgYGRldmAgfCBCbG9ja2VkIChDSSBib3Qgd2hpdGVsaXN0ZWQpIHwgUFIgbWVyZ2UgZnJvbSBmZWF0dXJlLyogfA0KfCBgcmNgIHwgQmxvY2tlZCAoQ0kgYm90IHdoaXRlbGlzdGVkKSB8IEF1dG8tY3JlYXRlZCBvbiBkcmFmdCBQUiB8DQp8IGBhbHBoYWAgfCBCbG9ja2VkIChDSSBib3Qgd2hpdGVsaXN0ZWQpIHwgTWFudWFsIHJlbmFtZSB8DQp8IGBiZXRhYCB8IEJsb2NrZWQgKENJIGJvdCB3aGl0ZWxpc3RlZCkgfCBNYW51YWwgcmVuYW1lIHwNCnwgYGZlYXR1cmUvKmAgfCBPcGVuIHwgTi9BIChzb3VyY2UgYnJhbmNoKSB8DQoNCiMjIFZlcnNpb24gUG9saWN5DQoNCiMjIyBGb3JtYXQNCg0KQWxsIHZlcnNpb25zIHVzZSBgWFguWVkuWlpgIOKAlCB0aHJlZSB0d28tZGlnaXQgc2VnbWVudHMsIHplcm8tcGFkZGVkOg0KDQotICoqWFgqKiDigJQgTWFqb3IgdmVyc2lvbiAoYnJlYWtpbmcgY2hhbmdlcykNCi0gKipZWSoqIOKAlCBNaW5vciB2ZXJzaW9uIChuZXcgZmVhdHVyZXMsIGJ1bXBlZCBvbiByZWxlYXNlIHRvIG1haW4pDQotICoqWloqKiDigJQgUGF0Y2ggdmVyc2lvbiAoYXV0by1pbmNyZW1lbnRlZCBvbiBldmVyeSBwdXNoIHRvIGRldi9mZWF0dXJlIGJyYW5jaGVzKQ0KDQpSb2xsb3ZlcjogcGF0Y2ggYDk5YCDihpIgYDAwYCBpbmNyZW1lbnRzIG1pbm9yOyBtaW5vciBgOTlgIOKGkiBgMDBgIGluY3JlbWVudHMgbWFqb3IuDQoNCiMjIyBTdGFiaWxpdHkgc3VmZml4ZXMNCg0KRWFjaCBicmFuY2ggYXBwZW5kcyBhIHN1ZmZpeCB0byBpbmRpY2F0ZSBzdGFiaWxpdHk6DQoNCnwgQnJhbmNoIHwgU3VmZml4IHwgRXhhbXBsZSB8DQp8LS0tLS0tLS18LS0tLS0tLS18LS0tLS0tLS0tfA0KfCBgbWFpbmAgfCAobm9uZSkgfCBgMDIuMDkuMDBgIHwNCnwgYGRldmAgfCBgLWRldmAgfCBgMDIuMDkuMDEtZGV2YCB8DQp8IGBmZWF0dXJlLypgIHwgYC1kZXZgIHwgYDAyLjA5LjAxLWRldmAgfA0KfCBgYWxwaGFgIHwgYC1hbHBoYWAgfCBgMDIuMDkuMDEtYWxwaGFgIHwNCnwgYGJldGFgIHwgYC1iZXRhYCB8IGAwMi4wOS4wMS1iZXRhYCB8DQp8IGByY2AgfCBgLXJjYCB8IGAwMi4wOS4wMS1yY2AgfA0KDQojIyMgQXV0byB2ZXJzaW9uIGJ1bXANCg0KT24gZXZlcnkgcHVzaCB0byBgZGV2YCwgYGZlYXR1cmUvKmAsIG9yIGBwYXRjaC8qYDoNCg0KMS4gUGF0Y2ggdmVyc2lvbiBpbmNyZW1lbnRlZA0KMi4gU3RhYmlsaXR5IHN1ZmZpeCBgLWRldmAgYXBwbGllZA0KMy4gQWxsIHZlcnNpb24tYmVhcmluZyBmaWxlcyB1cGRhdGVkIChtYW5pZmVzdHMsIENIQU5HRUxPRywgUEhQIGhlYWRlcnMsIGV0Yy4pDQo0LiBDb21taXQgY3JlYXRlZCB3aXRoIGBbc2tpcCBjaV1gIHRvIGF2b2lkIGxvb3BzDQoNCiMjIyBSZWxlYXNlIHZlcnNpb24gZmxvdw0KDQpWZXJzaW9uIGJ1bXBzIGhhcHBlbiBhdCBzcGVjaWZpYyByZWxlYXNlIGV2ZW50czoNCg0KfCBFdmVudCB8IEJ1bXAgfCBFeGFtcGxlIHwNCnwtLS0tLS0tfC0tLS0tLXwtLS0tLS0tLS18DQp8IEZlYXR1cmUgbWVyZ2VkIHRvIGRldiB8IFBhdGNoIGJ1bXAgYWZ0ZXIgZGV2IHJlbGVhc2UgfCBgMDIuMDkuMDEtZGV2YCDihpIgcmVsZWFzZSDihpIgYDAyLjA5LjAyLWRldmAgfA0KfCBEZXYgcHJvbW90ZWQgdG8gUkMgfCBNaW5vciBidW1wIHwgYDAyLjA5LjAyLWRldmAg4oaSIGAwMi4xMC4wMC1yY2AgfA0KfCBSQyBtZXJnZWQgdG8gbWFpbiB8IE1pbm9yIGJ1bXAgfCBgMDIuMTAuMDAtcmNgIOKGkiBgMDIuMTEuMDBgIChzdGFibGUpIHwNCnwgRGV2IHJlY3JlYXRlZCBmcm9tIG1haW4gfCBQYXRjaCBidW1wIHwgYDAyLjExLjAwYCDihpIgYDAyLjExLjAxLWRldmAgfA0KDQojIyMgUmVsZWFzZSBzdHJlYW0gY29waWVzDQoNCldoZW4gYSBoaWdoZXItc3RhYmlsaXR5IHJlbGVhc2UgaXMgcHVibGlzaGVkLCBjb3BpZXMgYXJlIGNyZWF0ZWQgZm9yIGFsbCBsZXNzZXIgc3RyZWFtcyB3aXRoIHRoZSBzYW1lIGJhc2UgdmVyc2lvbjoNCg0KLSAqKlJDIGAwMi4xMC4wMC1yY2AqKiBhbHNvIGNyZWF0ZXM6IGAwMi4xMC4wMC1kZXZgLCBgMDIuMTAuMDAtYWxwaGFgLCBgMDIuMTAuMDAtYmV0YWANCi0gKipTdGFibGUgYDAyLjExLjAwYCoqIGFsc28gY3JlYXRlczogYDAyLjExLjAwLWRldmAsIGAwMi4xMS4wMC1hbHBoYWAsIGAwMi4xMS4wMC1iZXRhYCwgYDAyLjExLjAwLXJjYA0KDQpUaGlzIGVuc3VyZXMgSm9vbWxhIHNpdGVzIG9uIEFOWSBzdGFiaWxpdHkgY2hhbm5lbCBzZWUgdGhlIHVwZGF0ZSAoSm9vbWxhIG9ubHkgc2hvd3MgdmVyc2lvbnMgaGlnaGVyIHRoYW4gd2hhdCdzIGluc3RhbGxlZCkuDQoNCiMjIyBWZXJzaW9uIGZpbGVzDQoNClRoZSB2ZXJzaW9uIHRvb2xzIHVwZGF0ZSBhbGwgZmlsZXMgY29udGFpbmluZyB2ZXJzaW9uIHN0YW1wczoNCg0KLSBgLm1va29naXRlYS9tYW5pZmVzdC54bWxgIChjYW5vbmljYWwgc291cmNlKQ0KLSBKb29tbGEgWE1MIG1hbmlmZXN0cyAoYDx2ZXJzaW9uPmAgdGFnKQ0KLSBgUkVBRE1FLm1kYCwgYENIQU5HRUxPRy5tZGAgKGBWRVJTSU9OOmAgcGF0dGVybikNCi0gYHBhY2thZ2UuanNvbmAsIGBweXByb2plY3QudG9tbGANCi0gQW55IHRleHQgZmlsZSB3aXRoIGEgYFZFUlNJT046IFhYLllZLlpaYCBsYWJlbA0KDQpGaWxlcyBzeW5jZWQgZnJvbSBvdGhlciByZXBvcyAod2l0aCBhIGAjIFJFUE86YCBoZWFkZXIpIGFyZSBub3QgdG91Y2hlZC4NCg0KIyMgQ29kZSBTdGFuZGFyZHMNCg0KLSAqKlBIUCoqOiBQU1ItMTIsIHRhYnMgZm9yIGluZGVudGF0aW9uDQotICoqQ29weXJpZ2h0Kio6IGFsbCBmaWxlcyBtdXN0IGluY2x1ZGUgdGhlIE1va28gQ29uc3VsdGluZyBjb3B5cmlnaHQgaGVhZGVyDQotICoqTGljZW5zZSoqOiBTUERYIGlkZW50aWZpZXIgYEdQTC0zLjAtb3ItbGF0ZXJgIChvciBhcyBzcGVjaWZpZWQgcGVyIHJlcG8pDQotICoqQXR0cmlidXRpb24qKjogdXNlIGBBdXRob3JlZC1ieTogTW9rbyBDb25zdWx0aW5nYCBpbiBjb21taXRzLCBub3QgaW5kaXZpZHVhbCBuYW1lcw0KDQojIyBDb21taXQgTWVzc2FnZXMNCg0KVXNlIGNvbnZlbnRpb25hbCBjb21taXQgZm9ybWF0Og0KDQpgYGANCnR5cGUoc2NvcGUpOiBzaG9ydCBkZXNjcmlwdGlvbg0KDQpPcHRpb25hbCBib2R5IHdpdGggY29udGV4dC4NCg0KQXV0aG9yZWQtYnk6IE1va28gQ29uc3VsdGluZw0KYGBgDQoNClR5cGVzOiBgZmVhdGAsIGBmaXhgLCBgY2hvcmVgLCBgZG9jc2AsIGBzdHlsZWAsIGByZWZhY3RvcmAsIGB0ZXN0YCwgYGNpYA0KDQpTcGVjaWFsIGZsYWdzIGluIGNvbW1pdCBtZXNzYWdlczoNCi0gYFtza2lwIGNpXWAg4oCUIHNraXAgYWxsIENJIHdvcmtmbG93cw0KLSBgW3NraXAgYnVtcF1gIOKAlCBza2lwIGF1dG8gdmVyc2lvbiBidW1wIG9ubHkNCg0KIyMgUmVwb3J0aW5nIElzc3Vlcw0KDQpVc2UgdGhlIHJlcG9zaXRvcnkncyBpc3N1ZSB0cmFja2VyIHdpdGggdGhlIGFwcHJvcHJpYXRlIHRlbXBsYXRlLg0KDQotLS0NCg0KKk1va28gQ29uc3VsdGluZyA8aGVsbG9AbW9rb2NvbnN1bHRpbmcudGVjaD4qDQo=