# Name: smd_xml v0.22 # Type: Client side plugin # Extract any XML/feed info and reformat it # Author: Stef Dawson # URL: http://stefdawson.com/ # Recommended load order: 5 # ..................................................................... # This is a plugin for Textpattern - http://textpattern.com/ # To install: textpattern > admin > plugins # Paste the following text into the 'Install plugin' box: # ..................................................................... YToxMTp7czo0OiJuYW1lIjtzOjc6InNtZF94bWwiO3M6NjoiYXV0aG9yIjtzOjExOiJTdGVm IERhd3NvbiI7czoxMDoiYXV0aG9yX3VyaSI7czoyMjoiaHR0cDovL3N0ZWZkYXdzb24uY29t LyI7czo3OiJ2ZXJzaW9uIjtzOjQ6IjAuMjIiO3M6MTE6ImRlc2NyaXB0aW9uIjtzOjQxOiJF eHRyYWN0IGFueSBYTUwvZmVlZCBpbmZvIGFuZCByZWZvcm1hdCBpdCI7czo0OiJjb2RlIjtz OjE2MTU4OiJmdW5jdGlvbiBzbWRfeG1sKCRhdHRzLCAkdGhpbmc9TlVMTCkgew0KCWdsb2Jh bCAkcHJldGV4dCwgJHRoaXNwYWdlLCAkc21kX3htbF9wZ2luZm87DQoNCglleHRyYWN0KGxB dHRzKGFycmF5KA0KCQknZGF0YScgPT4gJycsDQoJCSdyZWNvcmQnID0+ICcnLA0KCQknZmll bGRzJyA9PiAnJywNCgkJJ3NraXAnID0+ICcnLA0KCQkndXBwZXJjYXNlJyA9PiAnMCcsDQoJ CSdjb252ZXJ0JyA9PiAnJywgLy8gc2VhcmNoOnJlcGxhY2UsIHNlYXJjaDpyZXBsYWNlLCAu Li4NCgkJJ3RhcmdldF9lbmMnID0+ICdVVEYtOCcsDQoJCSdkZWZhdWx0cycgPT4gJycsDQoJ CSdzZXRfZW1wdHknID0+ICcwJywNCgkJJ2Zvcm0nID0+ICcnLA0KCQknbGltaXQnID0+IDAs DQoJCSdvZmZzZXQnID0+IDAsDQoJCSdsaW5raWZ5JyA9PiAnJywNCgkJJ3BhZ2Vmb3JtJyA9 PiAnJywNCgkJJ3BhZ2V2YXInID0+ICdwZycsDQoJCSdwYWdlcG9zJyA9PiAnYmVsb3cnLA0K CQknd3JhcHRhZycgPT4gJycsDQoJCSdicmVhaycgPT4gJycsDQoJCSdjbGFzcycgPT4gJycs DQoJCSdkZWxpbScgPT4gJywnLA0KCQkncGFyYW1fZGVsaW0nID0+ICc6JywNCgkJJ2NvbmNh dF9kZWxpbScgPT4gJyAnLA0KCQknY29uY2F0JyA9PiAnMScsDQoJCSdjYWNoZV90aW1lJyA9 PiAnMCcsIC8vIGluIHNlY29uZHMNCgkJJ2hhc2hzaXplJyA9PiAnNjo1JywNCgkJJ2xpbmVf bGVuZ3RoJyA9PiAnODE5MicsDQoJCSd0cmFuc3BvcnQnID0+ICcnLA0KCQknZGVidWcnID0+ ICcwJywNCgkpLCAkYXR0cykpOw0KDQoJJHNyYyA9ICcnOw0KCSR0aGluZyA9IChlbXB0eSgk Zm9ybSkpID8gJHRoaW5nIDogZmV0Y2hfZm9ybSgkZm9ybSk7DQoNCglpZiAoZW1wdHkoJGRh dGEpKSB7DQoJCXRyaWdnZXJfZXJyb3IoInNtZF94bWwgcmVxdWlyZXMgYSBkYXRhIHNvdXJj ZSIpOw0KCX0NCglpZiAoZW1wdHkoJHJlY29yZCkpIHsNCgkJdHJpZ2dlcl9lcnJvcigic21k X3htbCByZXF1aXJlcyBhIHJlY29yZCBuYW1lIHdpdGhpbiB5b3VyIGRhdGEgc3RyZWFtIik7 DQoJfQ0KCWlmIChlbXB0eSgkZmllbGRzKSkgew0KCQl0cmlnZ2VyX2Vycm9yKCJzbWRfeG1s IHJlcXVpcmVzIGEgbGlzdCBvZiBmaWVsZHMgdG8gZXh0cmFjdCBmcm9tIHdpdGhpbiB5b3Vy IHJlY29yZHMiKTsNCgl9DQoNCgkkcGFnZWJpdCA9ICRyb3dpbmZvID0gYXJyYXkoKTsNCglp ZiAoJHBhZ2Vmb3JtKSB7DQoJCSRwYWdlUG9zQWxsb3dlZCA9IGFycmF5KCJiZWxvdyIsICJh Ym92ZSIpOw0KCQkkcGFnZWZvcm0gPSBmZXRjaF9mb3JtKCRwYWdlZm9ybSk7DQoJCSRwYWdl cG9zID0gc3RyX3JlcGxhY2UoJ3NtZF8nLCAnJywgJHBhZ2Vwb3MpOyAvLyBGb3IgY29udmVu aWVuY2UNCgkJJHBhZ2Vwb3MgPSBkb19saXN0KCRwYWdlcG9zLCAkZGVsaW0pOw0KCQlmb3Jl YWNoICgkcGFnZXBvcyBhcyAkcGFnZWl0ZW0pIHsNCgkJCSRwYWdlYml0W10gPSAoaW5fYXJy YXkoJHBhZ2VpdGVtLCAkcGFnZVBvc0FsbG93ZWQpKSA/ICRwYWdlaXRlbSA6ICRwYWdlUG9z QWxsb3dlZFswXTsNCgkJfQ0KCX0NCg0KCSR0YXJnZXRfZW5jID0gKGluX2FycmF5KCR0YXJn ZXRfZW5jLCBhcnJheSgnSVNPLTg4NTktMScsICdVUy1BU0NJSScsICdVVEYtOCcpKSkgPyAk dGFyZ2V0X2VuYyA6ICdVVEYtOCc7DQoNCgkvLyBNYWtlIGEgdW5pcXVlIGhhc2ggdmFsdWUg Zm9yIHRoaXMgaW5zdGFuY2Ugc28gdGhlIFhNTCBkb2N1bWVudCBjYW4gYmUgY2FjaGVkIGlu IHR4cF9wcmVmcw0KCSR1bmlxID0gJyc7DQoJJG1kNSA9IG1kNSgkZGF0YS4kcmVjb3JkLiRm aWVsZHMpOw0KCWxpc3QoJGhhc2hMZW4sICRoYXNoU2tpcCkgPSBleHBsb2RlKCc6JywgJGhh c2hzaXplKTsNCglmb3IgKCRpZHggPSAwLCAkY250ID0gMDsgJGNudCA8ICRoYXNoTGVuOyAk Y250KyssICRpZHggPSAoKCRpZHgrJGhhc2hTa2lwKSAlIHN0cmxlbigkbWQ1KSkpIHsNCgkJ JHVuaXEgLj0gJG1kNVskaWR4XTsNCgl9DQoNCgkkdmFyX2xhc3Rtb2QgPSAnc21kX3htbF9s bW9kXycuJHVuaXE7DQoJJHZhcl9kYXRhID0gJ3NtZF94bWxfZGF0YV8nLiR1bmlxOw0KCSRs YXN0bW9kID0gZ2V0X3ByZWYoJHZhcl9sYXN0bW9kLCAwKTsNCgkkcmVhZF9jYWNoZSA9ICgo JGNhY2hlX3RpbWUgPiAwKSAmJiAoKHRpbWUoKSAtICRsYXN0bW9kKSA8ICRjYWNoZV90aW1l KSkgPyB0cnVlIDogZmFsc2U7DQoJJHJlYWRfY2FjaGUgPSBncHMoJ2ZvcmNlX3JlYWQnKSA/ IGZhbHNlIDogJHJlYWRfY2FjaGU7IC8vIE92ZXJyaWRlIGNhY2hlX3RpbWUNCgkkY3J1c2gg PSBmdW5jdGlvbl9leGlzdHMoJ2d6Y29tcHJlc3MnKSAmJiBmdW5jdGlvbl9leGlzdHMoJ2d6 dW5jb21wcmVzcycpOw0KCSRwYWdldmFyID0gKCRwYWdldmFyID09ICdTTURfWE1MX1VOSVFV RV9JRCcpID8gJHVuaXEgOiAkcGFnZXZhcjsNCg0KCS8vIENhY2hlZCBkb2N1bWVudCBpcyBn emlwcGVkIGFuZCB0aGVuICh5dWshKSBiYXNlNjQnZCBpZiB6bGliIGlzIGNvbXBpbGVkIGlu Lg0KCS8vIFdvdWxkIHByZWZlciB0byBzdG9yZSBiaW5hcnkgZGF0YSBkaXJlY3RseSBidXQg dHJ5aW5nIHRvIGluc2VydCBpdCBpbnRvIGEgdHhwX3ByZWZzDQoJLy8gdGV4dCBmaWVsZCBh bHdheXMgZ2F2ZSBwcm9ibGVtcyBvbiBpbnNlcnRpb24gYW5kL29yIHJldHJpZXZhbA0KCWlm ICgkcmVhZF9jYWNoZSkgew0KCQlpZiAoJGRlYnVnID4gMSkgew0KCQkJZG1wICgnKysgUkVB RElORyBDQUNIRSAnLiR2YXJfZGF0YS4nICsrJyk7DQoJCX0NCgkJJHNyYyA9ICRjcnVzaCA/ IGd6dW5jb21wcmVzcyhiYXNlNjRfZGVjb2RlKGdldF9wcmVmKCR2YXJfZGF0YSkpKSA6IGdl dF9wcmVmKCR2YXJfZGF0YSk7DQoJfSBlbHNlIHsNCgkJaWYgKChzdHJwb3MoJGRhdGEsICdo dHRwOicpID09PSAwKSB8fCAoc3RycG9zKCRkYXRhLCAnaHR0cHM6JykgPT09IDApKSB7DQoJ CQkvLyBUaGUgZGF0YSBpcyB0byBiZSBmZXRjaGVkIGZyb20gYSBVUkwNCgkJCWlmICghJHRy YW5zcG9ydCkgew0KCQkJCWlmKCBpc19jYWxsYWJsZSgnZnNvY2tvcGVuJykgKQ0KCQkJCQkk dHJhbnNwb3J0ID0gJ2Zzb2NrJzsNCgkJCQllbHNlaWYoIGlzX2NhbGxhYmxlKCdjdXJsX2lu aXQnKSApIHsNCgkJCQkJJHRyYW5zcG9ydCA9ICdjdXJsJzsNCgkJCQl9IGVsc2Ugew0KCQkJ CQkkdHJhbnNwb3J0ID0gJyc7DQoJCQkJfQ0KCQkJfQ0KDQoJCQlzd2l0Y2ggKCR0cmFuc3Bv cnQpIHsNCgkJCQljYXNlICdjdXJsJzoNCgkJCQkJJGMgPSBjdXJsX2luaXQoKTsNCgkJCQkJ Y3VybF9zZXRvcHQoJGMsIENVUkxPUFRfVVJMLCAkZGF0YSk7DQoJCQkJCWN1cmxfc2V0b3B0 KCRjLCBDVVJMT1BUX1JFRkVSRVIsIGh1KTsNCgkJCQkJY3VybF9zZXRvcHQoJGMsIENVUkxP UFRfUkVUVVJOVFJBTlNGRVIsIHRydWUpOw0KCQkJCQljdXJsX3NldG9wdCgkYywgQ1VSTE9Q VF9WRVJCT1NFLCBmYWxzZSk7DQoJCQkJCWN1cmxfc2V0b3B0KCRjLCBDVVJMT1BUX1RJTUVP VVQsIDEwKTsNCgkJCQkJJHNyYyA9IGN1cmxfZXhlYygkYyk7DQoJCQkJCWJyZWFrOw0KCQkJ CWNhc2UgJ2Zzb2NrJzoNCgkJCQkJJHVybCA9IHBhcnNlX3VybCgkZGF0YSk7DQoJCQkJCXN3 aXRjaCAoJHVybFsnc2NoZW1lJ10pIHsNCgkJCQkJCWNhc2UgJ2h0dHBzJzoNCgkJCQkJCQkk dXJsWydzY2hlbWUnXSA9ICdzc2w6Ly8nOw0KCQkJCQkJCSR1cmxbJ3BvcnQnXSA9IDQ0MzsN CgkJCQkJCQlicmVhazsNCgkJCQkJCWNhc2UgJ2h0dHAnOg0KCQkJCQkJZGVmYXVsdDoNCgkJ CQkJCQkkdXJsWydzY2hlbWUnXSA9ICcnOw0KCQkJCQkJCSR1cmxbJ3BvcnQnXSA9IDgwOw0K CQkJCQl9DQoJCQkJCSRmcCA9IGZzb2Nrb3BlbiAoJHVybFsnc2NoZW1lJ10gLiAkdXJsWydo b3N0J10sICR1cmxbJ3BvcnQnXSwgJGVycm5vLCAkZXJyc3RyLCAxMCk7DQoNCgkJCQkJJHFy eSA9ICdHRVQgJy4kdXJsWydwYXRoJ107DQoJCQkJCSRxcnkgLj0gIiBIVFRQLzEuMFxyXG4i Ow0KCQkJCQkkcXJ5IC49ICJIb3N0OiAiLiR1cmxbJ2hvc3QnXS4iXHJcbiI7DQoJCQkJCSRx cnkgLj0gIlVzZXItQWdlbnQ6IE1vemlsbGEvNS4wIChXaW5kb3dzOyBVOyBXaW5kb3dzIE5U IDUuMTsgZW4tR0I7IHJ2OjEuOS4xLjYpIEdlY2tvLzIwMDkxMjAxIEZpcmVmb3gvMy41LjZc clxuXHJcbiI7IC8vICpzaHJ1ZyoNCg0KCQkJCQlmcHV0cygkZnAsICRxcnkpOw0KCQkJCQlz dHJlYW1fc2V0X3RpbWVvdXQoJGZwLCAxMCk7DQoJCQkJCSRpbmZvID0gc3RyZWFtX2dldF9t ZXRhX2RhdGEoJGZwKTsNCg0KCQkJCQkkaGRycyA9IHRydWU7DQoJCQkJCXdoaWxlICgoIWZl b2YoJGZwKSkgJiYgKCEkaW5mb1sndGltZWRfb3V0J10pKSB7DQoJCQkJCQkkbGluZSA9IGZn ZXRzKCRmcCwgJGxpbmVfbGVuZ3RoKTsNCgkJCQkJCSRsaW5lID0gcHJlZ19yZXBsYWNlKCJb XHJcbl0iLCAiIiwgJGxpbmUpOw0KCQkJCQkJaWYgKCRoZHJzID09IGZhbHNlKSB7DQoJCQkJ CQkJJHNyYyAuPSAkbGluZS4iXG4iOw0KCQkJCQkJfQ0KCQkJCQkJaWYgKHN0cmxlbigkbGlu ZSkgPT0gMCkgJGhkcnMgPSBmYWxzZTsNCgkJCQkJfQ0KCQkJCQlpZiAoJGluZm9bJ3RpbWVk X291dCddKSB7DQoJCQkJCQkkc3JjID0gJyc7DQoJCQkJCX0NCgkJCQkJZmNsb3NlKCRmcCk7 DQoJCQkJCWJyZWFrOw0KCQkJCWRlZmF1bHQ6DQoJCQkJCSRzcmMgPSAnJzsNCgkJCX0NCgkJ fSBlbHNlICB7DQoJCQkvLyBBc3N1bWUgZGF0YSBpcyBwcmVzZW50ZWQgaW4gcmF3IFhNTA0K CQkJJHNyYyA9ICRkYXRhOw0KCQl9DQoJfQ0KDQoJLy8gU3RvcmUgdGhlIGN1cnJlbnQgZG9j dW1lbnQgaW4gdGhlIGNhY2hlIGFuZCBkYXRlc3RhbXAgaXQNCglpZiAoJGNhY2hlX3RpbWUg PiAwICYmICEkcmVhZF9jYWNoZSkgew0KCQlpZiAoJGRlYnVnID4gMSkgew0KCQkJZG1wKCcr KyBEQVRBIENBQ0hFRCB0byAnLiR2YXJfZGF0YS4nICsrJyk7DQoJCX0NCgkJJHNyY2luZm8g PSAkY3J1c2ggPyBiYXNlNjRfZW5jb2RlKGd6Y29tcHJlc3MoJHNyYykpIDogZG9TbGFzaCgk c3JjKTsNCgkJc2V0X3ByZWYoJHZhcl9sYXN0bW9kLCB0aW1lKCksICdzbWRfeG1sJywgUFJF Rl9ISURERU4sICd0ZXh0X2lucHV0Jyk7DQoJCXNldF9wcmVmKCR2YXJfZGF0YSwgJHNyY2lu Zm8sICdzbWRfeG1sJywgUFJFRl9ISURERU4sICd0ZXh0X2lucHV0Jyk7DQoJfQ0KDQoJLy8g TWFrZSB1cCBhIHJlcGxhY2VtZW50IGFycmF5IGZvciBkZWNvZGVkIGVudGl0aWVzLi4uDQoJ JGNvbnZlcnNpb25zID0gYXJyYXkoKTsNCgkkY29udmVydCA9IGRvX2xpc3QoJGNvbnZlcnQs ICRkZWxpbSk7DQoJZm9yZWFjaCAoJGNvbnZlcnQgYXMgJHBhaXIpIHsNCgkJaWYgKGVtcHR5 KCRwYWlyKSkgY29udGludWU7DQoNCgkJJHBhaXIgPSBkb19saXN0KCRwYWlyLCAkcGFyYW1f ZGVsaW0pOw0KCQkkY29udmVyc2lvbnNbJHBhaXJbMF1dID0gJHBhaXJbMV07DQoJfQ0KDQoJ aWYgKCRkZWJ1ZyA+IDEpIHsNCgkJZWNobyAiKysgQ09OVkVSU0lPTlMgKysiOw0KCQlkbXAo JGNvbnZlcnNpb25zKTsNCgl9DQoNCgkvLyAuLi4gYW5kIHJlcGxhY2UgdGhlbQ0KCSRzcmMg PSBzdHJ0cigkc3JjLCAkY29udmVyc2lvbnMpOw0KDQoJaWYgKCRkZWJ1ZyA+IDIpIHsNCgkJ ZWNobyAiKysgRklMVEVSRUQgU09VUkNFIERBVEEgKysiOw0KCQlkbXAoJHNyYyk7DQoJfQ0K DQoJLy8gU2V0IHVwIGFueSBkZWZhdWx0cw0KCSRkZWZhdWx0cyA9IGRvX2xpc3QoJGRlZmF1 bHRzLCAkZGVsaW0pOw0KCSRkZmx0cyA9IGFycmF5KCk7DQoJZm9yZWFjaCAoJGRlZmF1bHRz IGFzICRkZmx0KSB7DQoJCWlmICgkZGZsdCA9PSAnJykgY29udGludWU7DQoJCSRwYXJ0cyA9 IGV4cGxvZGUoJHBhcmFtX2RlbGltLCAkZGZsdCk7DQoJCSRkZmx0c1skcGFydHNbMF1dID0g JHBhcnRzWzFdOw0KCX0NCgkkZGVmYXVsdHMgPSAkZGZsdHM7DQoNCglpZiAoJGRlYnVnID4g MSkgew0KCQllY2hvICIrKyBERUZBVUxUUyArKyI7DQoJCWRtcCgkZGVmYXVsdHMpOw0KCX0N Cg0KCWlmICghZW1wdHkoJHNyYykpIHsNCgkJLy8gUGFnaW5nIGluZm9ybWF0aW9uDQoJCSRy b3dpbmZvWydudW1yZWNzJ10gPSBzdWJzdHJfY291bnQoJHNyYywgJzwnLiRyZWNvcmQuJz4n KTsNCgkJJHJvd2luZm9bJ3BhZ2Vfcm93Y250J10gPSAwOw0KCQkkcm93aW5mb1snbGltaXQn XSA9ICgkbGltaXQgPCAkcm93aW5mb1snbnVtcmVjcyddKSA/ICRsaW1pdCA6IDA7DQoJCWlm ICgkb2Zmc2V0ID49IDApIHsNCgkJCWlmICgkb2Zmc2V0IDwgJHJvd2luZm9bJ251bXJlY3Mn XSkgew0KCQkJCSRyb3dpbmZvWydvZmZzZXQnXSA9ICRvZmZzZXQ7DQoJCQl9IGVsc2Ugew0K CQkJCSRyb3dpbmZvWydvZmZzZXQnXSA9ICRyb3dpbmZvWydudW1yZWNzJ107DQoJCQkJJHJv d2luZm9bJ2xpbWl0J10gPSAwOw0KCQkJfQ0KCQl9IGVsc2Ugew0KCQkJJG5lZ29mZiA9ICRy b3dpbmZvWydudW1yZWNzJ10gKyAkb2Zmc2V0Ow0KCQkJaWYgKCRuZWdvZmYgPiAwKSB7DQoJ CQkJJHJvd2luZm9bJ29mZnNldCddID0gJG5lZ29mZjsNCgkJCX0gZWxzZSB7DQoJCQkJJHJv d2luZm9bJ29mZnNldCddID0gMDsNCgkJCQkkcm93aW5mb1snbGltaXQnXSA9ICRyb3dpbmZv WydudW1yZWNzJ107DQoJCQl9DQoJCX0NCg0KCQkvLyBSZS1hc3NpZ24gdGhlIGF0dHMgaW4g Y2FzZSB0aGV5J3ZlIGJlZW4gY2hhbmdlZCBieSByZWFjaGluZyB0aGUgYm91bmRzIG9mIHRo ZSBkb2N1bWVudA0KCQkkb2Zmc2V0ID0gJHJvd2luZm9bJ29mZnNldCddOw0KCQkkbGltaXQg PSAkcm93aW5mb1snbGltaXQnXTsNCg0KCQlpZiAoJGxpbWl0ID4gMCkgew0KCQkJJGtlZXBz YWZlID0gJHRoaXNwYWdlOw0KCQkJJHJvd2luZm9bJ3RvdGFsJ10gPSAkcm93aW5mb1snbnVt cmVjcyddIC0gJG9mZnNldDsNCgkJCSRyb3dpbmZvWydudW1QYWdlcyddID0gY2VpbCgkcm93 aW5mb1sndG90YWwnXSAvICRsaW1pdCk7DQoJCQkkcm93aW5mb1sncGcnXSA9ICghZ3BzKCRw YWdldmFyKSkgPyAxIDogZ3BzKCRwYWdldmFyKTsNCgkJCSRyb3dpbmZvWydwZ29mZnNldCdd ID0gJG9mZnNldCArICgoJHJvd2luZm9bJ3BnJ10gLSAxKSAqICRsaW1pdCk7DQoJCQkkcm93 aW5mb1sncHJldnBnJ10gPSAoKCRyb3dpbmZvWydwZyddLTEpID4gMCkgPyAkcm93aW5mb1sn cGcnXS0xIDogJyc7DQoJCQkkcm93aW5mb1snbmV4dHBnJ10gPSAoKCRyb3dpbmZvWydwZydd KzEpIDw9ICRyb3dpbmZvWydudW1QYWdlcyddKSA/ICRyb3dpbmZvWydwZyddKzEgOiAnJzsN CgkJCSRyb3dpbmZvWydwYWdlcm93cyddID0gKCRyb3dpbmZvWydwZyddID09ICRyb3dpbmZv WydudW1QYWdlcyddKSA/ICRyb3dpbmZvWyd0b3RhbCddLSgkbGltaXQgKiAoJHJvd2luZm9b J251bVBhZ2VzJ10tMSkpIDogJGxpbWl0Ow0KCQkJJHJvd2luZm9bJ3VuaXF1ZV9pZCddID0g JHVuaXE7DQoNCgkJCS8vIHNlbmQgcGFnaW5nIGluZm8gdG8gdHhwOm5ld2VyIGFuZCB0eHA6 b2xkZXINCgkJCSRwYWdlb3V0WydwZyddID0gJHJvd2luZm9bJ3BnJ107DQoJCQkkcGFnZW91 dFsnbnVtUGFnZXMnXSA9ICRyb3dpbmZvWydudW1QYWdlcyddOw0KCQkJJHBhZ2VvdXRbJ3Mn XSA9ICRwcmV0ZXh0WydzJ107DQoJCQkkcGFnZW91dFsnYyddID0gJHByZXRleHRbJ2MnXTsN CgkJCSRwYWdlb3V0WydncmFuZF90b3RhbCddID0gJHJvd2luZm9bJ251bXJlY3MnXTsNCgkJ CSRwYWdlb3V0Wyd0b3RhbCddID0gJHJvd2luZm9bJ3RvdGFsJ107DQoJCQkkdGhpc3BhZ2Ug PSAkcGFnZW91dDsNCgkJfSBlbHNlIHsNCgkJCSRyb3dpbmZvWydwZ29mZnNldCddID0gJG9m ZnNldDsNCgkJfQ0KDQoJCSRyb3dpbmZvWydydW5uaW5nX3Jvd2NudCddID0gJHJvd2luZm9b J3Bnb2Zmc2V0J10tJG9mZnNldDsNCgkJJHJvd2luZm9bJ2ZpcnN0X3JlYyddID0gJHJvd2lu Zm9bJ3J1bm5pbmdfcm93Y250J10gKyAxOw0KCQkkcm93aW5mb1snbGFzdF9yZWMnXSA9ICgk bGltaXQgPiAwKSA/ICRyb3dpbmZvWydmaXJzdF9yZWMnXSArICRyb3dpbmZvWydwYWdlcm93 cyddIC0gMSA6ICRyb3dpbmZvWydudW1yZWNzJ107DQoJCWlmICgkbGltaXQgPiAwKSB7DQoJ CQkkcm93aW5mb1sncHJldl9yb3dzJ10gPSAoKCRyb3dpbmZvWydwcmV2cGcnXSkgPyAkbGlt aXQgOiAwKTsNCgkJCSRyb3dpbmZvWyduZXh0X3Jvd3MnXSA9ICgoJHJvd2luZm9bJ25leHRw ZyddKSA/ICgoJHJvd2luZm9bJ2xhc3RfcmVjJ10rJGxpbWl0KzEpID4gJHJvd2luZm9bJ3Rv dGFsJ10gPyAkcm93aW5mb1sndG90YWwnXS0kcm93aW5mb1snbGFzdF9yZWMnXSA6ICRsaW1p dCkgOiAwKTsNCgkJfQ0KDQoJCWlmICgkZGVidWcgPiAwKSB7DQoJCQllY2hvICcrKyBQQUdJ TkcgSU5GTyArKyc7DQoJCQlkbXAoJHJvd2luZm8pOw0KCQl9DQoNCgkJLy8gRG8gdGhlIGRp cnR5IFhNTCBkZWVkDQoJCSRyZWYgPSBuZXcgc21kX3htbF9wYXJzZXIoJHNyYywgJGZpZWxk cywgJHJlY29yZCwgJHNraXAsICR1cHBlcmNhc2UsICR0YXJnZXRfZW5jLCAkbGlua2lmeSwg JGRlZmF1bHRzLCAkc2V0X2VtcHR5LCAkdGhpbmcsICRkZWxpbSwgJHBhcmFtX2RlbGltLCAk Y29uY2F0LCAkY29uY2F0X2RlbGltLCAkcm93aW5mbywgJGRlYnVnKTsNCgkJJHJlc3VsdCA9 ICRyZWYtPmdldFJlc3VsdHMoKTsNCg0KCQkvLyBDcmVhdGUgdGhlIHBhZ2UgZm9ybQ0KCQkk cGFnZWJsb2NrID0gJyc7DQoJCSRmaW5hbG91dCA9ICRyZXBhZ2VtZW50cyA9IGFycmF5KCk7 DQoNCgkJaWYgKCRyb3dpbmZvWydsaW1pdCddID4gMCkgew0KCQkJJHJlcGFnZW1lbnRzWyd7 c21kX3htbF90b3RhbHJlY3N9J10gPSAkcm93aW5mb1sndG90YWwnXTsNCgkJCSRyZXBhZ2Vt ZW50c1sne3NtZF94bWxfcGFnZXJlY3N9J10gPSAkcm93aW5mb1sncGFnZXJvd3MnXTsNCgkJ CSRyZXBhZ2VtZW50c1sne3NtZF94bWxfcGFnZXN9J10gPSAkcm93aW5mb1snbnVtUGFnZXMn XTsNCgkJCSRyZXBhZ2VtZW50c1sne3NtZF94bWxfcHJldnBhZ2V9J10gPSAkcm93aW5mb1sn cHJldnBnJ107DQoJCQkkcmVwYWdlbWVudHNbJ3tzbWRfeG1sX3RoaXNwYWdlfSddID0gJHJv d2luZm9bJ3BnJ107DQoJCQkkcmVwYWdlbWVudHNbJ3tzbWRfeG1sX25leHRwYWdlfSddID0g JHJvd2luZm9bJ25leHRwZyddOw0KCQkJJHJlcGFnZW1lbnRzWyd7c21kX3htbF9yZWNfc3Rh cnR9J10gPSAkcm93aW5mb1snZmlyc3RfcmVjJ107DQoJCQkkcmVwYWdlbWVudHNbJ3tzbWRf eG1sX3JlY19lbmR9J10gPSAkcm93aW5mb1snbGFzdF9yZWMnXTsNCgkJCSRyZXBhZ2VtZW50 c1sne3NtZF94bWxfcmVjc19wcmV2fSddID0gJHJvd2luZm9bJ3ByZXZfcm93cyddOw0KCQkJ JHJlcGFnZW1lbnRzWyd7c21kX3htbF9yZWNzX25leHR9J10gPSAkcm93aW5mb1snbmV4dF9y b3dzJ107DQoJCQkkcmVwYWdlbWVudHNbJ3tzbWRfeG1sX3VuaXF1ZV9pZH0nXSA9ICRyb3dp bmZvWyd1bmlxdWVfaWQnXTsNCgkJCSRzbWRfeG1sX3BnaW5mbyA9ICRyZXBhZ2VtZW50czsN CgkJCSRwYWdlYmxvY2sgPSBwYXJzZShzdHJ0cigkcGFnZWZvcm0sICRyZXBhZ2VtZW50cykp Ow0KCQl9DQoNCgkJLy8gTWFrZSB1cCB0aGUgZmluYWwgb3V0cHV0DQoJCWlmIChpbl9hcnJh eSgiYWJvdmUiLCAkcGFnZWJpdCkpIHsNCgkJCSRmaW5hbG91dFtdID0gJHBhZ2VibG9jazsN CgkJfQ0KCQkkZmluYWxvdXRbXSA9IGRvV3JhcCgkcmVzdWx0LCAkd3JhcHRhZywgJGJyZWFr LCAkY2xhc3MpOw0KCQlpZiAoaW5fYXJyYXkoImJlbG93IiwgJHBhZ2ViaXQpKSB7DQoJCQkk ZmluYWxvdXRbXSA9ICRwYWdlYmxvY2s7DQoJCX0NCg0KCQkvLyBSZXN0b3JlIHRoZSBwYWdp bmcgb3V0c2lkZSB0aGUgcGx1Z2luIGNvbnRhaW5lcg0KCQlpZiAoJGxpbWl0ID4gMCkgew0K CQkJJHRoaXNwYWdlID0gJGtlZXBzYWZlOw0KCQl9DQoNCgkJcmV0dXJuIGpvaW4oJycsICRm aW5hbG91dCk7DQoJfSBlbHNlIHsNCgkJcmV0dXJuICcnOw0KCX0NCn0NCg0KY2xhc3Mgc21k X3htbF9wYXJzZXIgew0KCXByaXZhdGUgJGRhdGE7DQoJcHJpdmF0ZSAkZmllbGRzOw0KCXBy aXZhdGUgJHJlYzsNCglwcml2YXRlICRza2lwOw0KCXByaXZhdGUgJGNmOw0KCXByaXZhdGUg JG91dGVuYzsNCglwcml2YXRlICRsaW5raWZ5Ow0KCXByaXZhdGUgJGRlZmF1bHRzOw0KCXBy aXZhdGUgJHNldF9lbXB0eTsNCg0KCXByaXZhdGUgJGludGFnOw0KCXByaXZhdGUgJGluZGF0 YTsNCglwcml2YXRlICRza2lwdGFnOw0KCXByaXZhdGUgJHhtbHRhZzsNCglwcml2YXRlICR4 bWxhdHRzOw0KCXByaXZhdGUgJHhtbGRhdGE7DQoJcHJpdmF0ZSAkdGhpbmc7DQoJcHJpdmF0 ZSAkb3V0Ow0KCXByaXZhdGUgJHBkZWxpbTsNCglwcml2YXRlICRjZGVsaW07DQoJcHJpdmF0 ZSAkY29uY2F0Ow0KCXByaXZhdGUgJHJvd2luZm87DQoJcHJpdmF0ZSAkc2hvd19yZWNvcmQ7 DQoJcHJpdmF0ZSAkZGVidWc7DQoNCgkvKioNCgkqIGNvbnN0cnVjdG9yDQoJKi8NCglmdW5j dGlvbiBzbWRfeG1sX3BhcnNlcigkZGF0YSwgJGZpZWxkcywgJHJlYywgJHNraXAsICRjZiwg JG91dGVuYywgJGxpbmtpZnksICRkZWZhdWx0cywgJHNldF9lbXB0eSwgJHRoaW5nLCAkZGVs aW0sICRwZGVsaW0sICRjb25jYXQsICRjZGVsaW0sICRyaW5mbywgJGRlYnVnPTApIHsNCgkJ JHRoaXMtPmRhdGEgPSAkZGF0YTsNCgkJJHRoaXMtPmZpZWxkcyA9IGRvX2xpc3QoJGZpZWxk cywgJGRlbGltKTsNCgkJJHRoaXMtPnNraXAgPSBkb19saXN0KCRza2lwLCAkZGVsaW0pOw0K CQkkdGhpcy0+cmVjID0gJHJlYzsNCgkJJHRoaXMtPmNmID0gJGNmOyAvLyBDYXNlIGZvbGRp bmcNCgkJJHRoaXMtPm91dGVuYyA9ICRvdXRlbmM7IC8vIFRhcmdldCBlbmNvZGluZw0KCQkk dGhpcy0+bGlua2lmeSA9IGRvX2xpc3QoJGxpbmtpZnksICRkZWxpbSk7DQoJCSR0aGlzLT5k ZWZhdWx0cyA9ICRkZWZhdWx0czsNCgkJJHRoaXMtPnNldF9lbXB0eSA9ICRzZXRfZW1wdHk7 DQoJCSR0aGlzLT50aGluZyA9ICR0aGluZzsNCgkJJHRoaXMtPnBkZWxpbSA9ICRwZGVsaW07 DQoJCSR0aGlzLT5jZGVsaW0gPSAkY2RlbGltOw0KCQkkdGhpcy0+Y29uY2F0ID0gJGNvbmNh dDsNCgkJJHRoaXMtPnJvd2luZm8gPSAkcmluZm87DQoJCSR0aGlzLT5kZWJ1ZyA9ICRkZWJ1 ZzsNCg0KCQkkdGhpcy0+aW50YWcgPSBmYWxzZTsNCgkJJHRoaXMtPmV4aXN0cyA9IGZhbHNl Ow0KCQkkdGhpcy0+c2tpcHRhZyA9ICcnOw0KCQkkdGhpcy0+eG1sdGFnID0gJyc7DQoJCSR0 aGlzLT54bWx0YXR0cyA9ICcnOw0KCQkkdGhpcy0+eG1sZGF0YSA9IGFycmF5KCk7DQoJCSR0 aGlzLT5vdXQgPSBhcnJheSgpOw0KDQoJCSR0aGlzLT5wYXJzZSgpOw0KCX0NCg0KCXB1Ymxp YyBmdW5jdGlvbiBnZXRSZXN1bHRzKCkgew0KCQlpZiAoJHRoaXMtPm91dCkgew0KCQkJcmV0 dXJuICR0aGlzLT5vdXQ7DQoJCX0gZWxzZSB7DQoJCQlyZXR1cm4gJyc7DQoJCX0NCgl9DQoN Cglwcml2YXRlIGZ1bmN0aW9uIHBhcnNlKCkgew0KCQkkdGhpcy0+ZGF0YSA9IHByZWdfcmVw bGFjZSgiLz4iLiJbWzpzcGFjZTpdXSsiLiI8L2kiLCAiPjwiLCAkdGhpcy0+ZGF0YSk7IC8v IEtpbGwgd2hpdGVzcGFjZSBpbiBkYXRhDQoJCSR4bWxwYXJzZXIgPSB4bWxfcGFyc2VyX2Ny ZWF0ZSgpOw0KCQl4bWxfc2V0X29iamVjdCgkeG1scGFyc2VyLCAkdGhpcyk7DQoJCXhtbF9w YXJzZXJfc2V0X29wdGlvbigkeG1scGFyc2VyLCBYTUxfT1BUSU9OX0NBU0VfRk9MRElORywg JHRoaXMtPmNmKTsNCgkJeG1sX3BhcnNlcl9zZXRfb3B0aW9uKCR4bWxwYXJzZXIsIFhNTF9P UFRJT05fVEFSR0VUX0VOQ09ESU5HLCAkdGhpcy0+b3V0ZW5jKTsNCgkJeG1sX3NldF9lbGVt ZW50X2hhbmRsZXIoJHhtbHBhcnNlciwgInNtZF94bWxfc3RhcnRfdGFnIiwgInNtZF94bWxf ZW5kX3RhZyIpOw0KCQl4bWxfc2V0X2NoYXJhY3Rlcl9kYXRhX2hhbmRsZXIoJHhtbHBhcnNl ciwgInNtZF94bWxfdGFnX2NvbnRlbnRzIik7DQoJCXhtbF9wYXJzZSgkeG1scGFyc2VyLCAk dGhpcy0+ZGF0YSk7DQoJCXhtbF9wYXJzZXJfZnJlZSgkeG1scGFyc2VyKTsNCgl9DQoNCglw cml2YXRlIGZ1bmN0aW9uIHNtZF94bWxfc3RhcnRfdGFnKCRwYXJzZXIsICRuYW1lLCAkYXR0 cmlicykgew0KCQkkcGd2YWwgPSAkdGhpcy0+cm93aW5mb1sncGdvZmZzZXQnXSAtIDE7DQoJ CSRsaW0gPSAkdGhpcy0+cm93aW5mb1snbGltaXQnXSA+IDA7DQoJCSR0aGlzLT5zaG93X3Jl Y29yZCA9ICRsaW0gPyAoKCR0aGlzLT5yb3dpbmZvWydwYWdlX3Jvd2NudCddID4gJHBndmFs KSAmJiAoJHRoaXMtPnJvd2luZm9bJ3BhZ2Vfcm93Y250J10gPD0gJHBndmFsICsgJHRoaXMt PnJvd2luZm9bJ3BhZ2Vyb3dzJ10pKSA6ICR0aGlzLT5yb3dpbmZvWydwYWdlX3Jvd2NudCdd ID4gJHBndmFsOw0KDQoJCWlmICgkbmFtZSA9PSAkdGhpcy0+cmVjICYmICR0aGlzLT5zaG93 X3JlY29yZCkgew0KCQkJJHRoaXMtPmludGFnID0gdHJ1ZTsNCgkJfQ0KCQlpZiAoJHRoaXMt PmludGFnKSB7DQoJCQlpZiAoaW5fYXJyYXkoJG5hbWUsICR0aGlzLT5za2lwKSkgew0KCQkJ CSR0aGlzLT54bWx0YWcgPSAnJzsNCgkJCQkkdGhpcy0+eG1sYXR0cyA9IGFycmF5KCk7DQoJ CQkJJHRoaXMtPnNraXB0YWcgPSAkbmFtZTsNCgkJCX0gZWxzZSB7DQoJCQkJJHRoaXMtPnht bHRhZyA9ICRuYW1lOw0KCQkJCSR0aGlzLT54bWxhdHRzID0gJGF0dHJpYnM7DQoJCQkJaWYg KCR0aGlzLT5jb25jYXQgJiYgaXNzZXQoJHRoaXMtPnhtbGRhdGFbJ3snLiR0aGlzLT54bWx0 YWcuJ30nXSkpIHsNCgkJCQkJJHRoaXMtPmV4aXN0cyA9IHRydWU7DQogICAgICAgIAkgfSBl bHNlIHsNCgkJCQkJJHRoaXMtPmV4aXN0cyA9IGZhbHNlOw0KCQkJCX0NCgkJCX0NCgkJfQ0K CQkkdGhpcy0+aW5kYXRhID0gZmFsc2U7DQoJfQ0KDQoJcHJpdmF0ZSBmdW5jdGlvbiBzbWRf eG1sX2VuZF90YWcoJHBhcnNlciwgJG5hbWUpIHsNCgkJaWYgKCRuYW1lID09ICR0aGlzLT5y ZWMgJiYgJG5hbWUgIT0gJHRoaXMtPnNraXB0YWcpIHsNCgkJCSR0aGlzLT5pbnRhZyA9IGZh bHNlOw0KCQkJJGxpbSA9ICgkdGhpcy0+cm93aW5mb1snbGltaXQnXSA+IDApID8gdHJ1ZSA6 IGZhbHNlOw0KDQoJCQkvLyBBcHBlbmQgcm93IGNvdW50ZXIgaW5mb3JtYXRpb24NCgkJCSR0 aGlzLT54bWxkYXRhWyd7c21kX3htbF90b3RhbHJlY3N9J10gPSAkbGltID8gJHRoaXMtPnJv d2luZm9bJ3RvdGFsJ10gOiAkdGhpcy0+cm93aW5mb1snbnVtcmVjcyddIC0gJHRoaXMtPnJv d2luZm9bJ3Bnb2Zmc2V0J107DQoJCQkkdGhpcy0+eG1sZGF0YVsne3NtZF94bWxfcGFnZXJl Y3N9J10gPSAkbGltID8gJHRoaXMtPnJvd2luZm9bJ3BhZ2Vyb3dzJ10gOiAkdGhpcy0+eG1s ZGF0YVsne3NtZF94bWxfdG90YWxyZWNzfSddOw0KCQkJJHRoaXMtPnhtbGRhdGFbJ3tzbWRf eG1sX3BhZ2VzfSddID0gJGxpbSA/ICR0aGlzLT5yb3dpbmZvWydudW1QYWdlcyddIDogMTsN CgkJCSR0aGlzLT54bWxkYXRhWyd7c21kX3htbF90aGlzcGFnZX0nXSA9ICRsaW0gPyAkdGhp cy0+cm93aW5mb1sncGcnXSA6IDE7DQoJCQkkdGhpcy0+eG1sZGF0YVsne3NtZF94bWxfdGhp c2luZGV4fSddID0gJHRoaXMtPnJvd2luZm9bJ3BhZ2Vfcm93Y250J10gLSAkdGhpcy0+cm93 aW5mb1snb2Zmc2V0J107DQoJCQkkdGhpcy0+eG1sZGF0YVsne3NtZF94bWxfdGhpc3JlY30n XSA9ICR0aGlzLT5yb3dpbmZvWydwYWdlX3Jvd2NudCddIC0gJHRoaXMtPnJvd2luZm9bJ29m ZnNldCddICsgMTsNCgkJCSR0aGlzLT54bWxkYXRhWyd7c21kX3htbF9ydW5pbmRleH0nXSA9 ICR0aGlzLT5yb3dpbmZvWydydW5uaW5nX3Jvd2NudCddOw0KCQkJJHRoaXMtPnhtbGRhdGFb J3tzbWRfeG1sX3J1bnJlY30nXSA9ICR0aGlzLT5yb3dpbmZvWydydW5uaW5nX3Jvd2NudCdd ICsgMTsNCg0KCQkJaWYgKCR0aGlzLT5kZWZhdWx0cykgew0KCQkJCWZvcmVhY2ggKCR0aGlz LT5maWVsZHMgYXMgJGZpZWxkKSB7DQoJCQkJCWlmICghaXNzZXQoJHRoaXMtPnhtbGRhdGFb J3snLiRmaWVsZC4nfSddKSkgew0KCQkJCQkJaWYgKGFycmF5X2tleV9leGlzdHMoJGZpZWxk LCAkdGhpcy0+ZGVmYXVsdHMpKSB7DQoJCQkJCQkJJHRoaXMtPnhtbGRhdGFbJ3snLiRmaWVs ZC4nfSddID0gJHRoaXMtPmRlZmF1bHRzWyRmaWVsZF07DQoJCQkJCQl9IGVsc2UgaWYgKCR0 aGlzLT5zZXRfZW1wdHkpIHsNCgkJCQkJCQkkdGhpcy0+eG1sZGF0YVsneycuJGZpZWxkLid9 J10gPSAnJzsNCgkJCQkJCX0NCgkJCQkJfQ0KCQkJCX0NCgkJCX0NCg0KCQkJaWYgKCR0aGlz LT5kZWJ1ZyA+IDApIHsNCgkJCQllY2hvICIrKyBSRVBMQUNFTUVOVFMgKysiOw0KCQkJCWRt cCgkdGhpcy0+eG1sZGF0YSk7DQoJCQl9DQoNCgkJCWlmICgkdGhpcy0+c2hvd19yZWNvcmQp IHsNCgkJCQkkdGhpcy0+b3V0W10gPSBwYXJzZShzdHJ0cigkdGhpcy0+dGhpbmcsICR0aGlz LT54bWxkYXRhKSk7DQoJCQl9DQoNCgkJCS8vIFByZXBhcmUgZm9yIG5leHQgaXRlcmF0aW9u DQoJCQkkdGhpcy0+cm93aW5mb1sncnVubmluZ19yb3djbnQnXSA9ICR0aGlzLT5yb3dpbmZv WydydW5uaW5nX3Jvd2NudCddKzE7DQoJCQkkdGhpcy0+cm93aW5mb1sncGFnZV9yb3djbnQn XSA9ICR0aGlzLT5yb3dpbmZvWydwYWdlX3Jvd2NudCddKzE7DQoJCQkkdGhpcy0+eG1sZGF0 YSA9IGFycmF5KCk7DQoJCQkkdGhpcy0+aW5kYXRhID0gZmFsc2U7DQoJCX0NCgkJaWYgKCRu YW1lID09ICR0aGlzLT5za2lwdGFnKSB7DQoJCQkkdGhpcy0+c2tpcHRhZyA9ICcnOw0KCQl9 DQoJfQ0KDQoJcHJpdmF0ZSBmdW5jdGlvbiBzbWRfeG1sX3RhZ19jb250ZW50cygkcGFyc2Vy LCAkZGF0YSkgew0KCQlpZiAoJHRoaXMtPmludGFnICYmICEkdGhpcy0+c2tpcHRhZykgew0K CQkJaWYgKCR0aGlzLT5kZWJ1ZyA+IDEpIHsNCgkJCQlkbXAoJHRoaXMtPnhtbHRhZyAuICIg OiAiLiAkZGF0YSk7DQoJCQl9DQoNCgkJCWlmIChpbl9hcnJheSgkdGhpcy0+eG1sdGFnLCAk dGhpcy0+ZmllbGRzKSkgew0KCQkJCWlmIChpbl9hcnJheSgkdGhpcy0+eG1sdGFnLCAkdGhp cy0+bGlua2lmeSkpIHsNCgkJCQkJJGRhdGEgPSBwcmVnX3JlcGxhY2UoJ0AoaHR0cHM/Oi8v KFstXHdcLl0rKSsoOlxkKyk/KC8oW1x3L19cLl0qKFw/XFMrKT8pPyk/KUAnLCAnPGEgaHJl Zj0iJDEiPiQxPC9hPicsICRkYXRhKTsNCgkJCQl9DQoJCQkJaWYgKCR0aGlzLT5pbmRhdGEp IHsNCgkJCQkJaWYgKCR0aGlzLT5leGlzdHMpIHsNCgkJCQkJCSR0aGlzLT54bWxkYXRhWyd7 Jy4kdGhpcy0+eG1sdGFnLid9J10gLj0gJHRoaXMtPmNkZWxpbS4kZGF0YTsNCgkJCQkJfSBl bHNlIHsNCgkJCQkJCSR0aGlzLT54bWxkYXRhWyd7Jy4kdGhpcy0+eG1sdGFnLid9J10gLj0g JGRhdGE7DQoJCQkJCX0NCgkJCQl9IGVsc2Ugew0KCQkJCQlpZiAoJHRoaXMtPmV4aXN0cykg ew0KCQkJCQkJJHRoaXMtPnhtbGRhdGFbJ3snLiR0aGlzLT54bWx0YWcuJ30nXSAuPSAkdGhp cy0+Y2RlbGltLiRkYXRhOw0KCQkJCQl9IGVsc2Ugew0KCQkJCQkJJHRoaXMtPnhtbGRhdGFb J3snLiR0aGlzLT54bWx0YWcuJ30nXSA9ICRkYXRhOw0KCQkJCQl9DQoJCQkJfQ0KCQkJCWlm ICgkdGhpcy0+eG1sYXR0cykgew0KCQkJCQlmb3JlYWNoICgkdGhpcy0+eG1sYXR0cyBhcyAk eGtleSA9PiAkeHZhbCkgew0KCQkJCQkJJHRoaXMtPnhtbGRhdGFbJ3snLiR0aGlzLT54bWx0 YWcuJHRoaXMtPnBkZWxpbS4keGtleS4nfSddID0gJHh2YWw7DQoJCQkJCX0NCgkJCQl9DQoJ CQkJJHRoaXMtPmluZGF0YSA9IHRydWU7DQoJCQl9DQoJCX0NCgl9DQp9DQoNCi8vIENvbnZl bmllbmNlIGZ1bmN0aW9ucyB0byBjaGVjayBpZiB0aGVyZSdzIGEgcHJldi9uZXh0IHBhZ2Ug ZGVmaW5lZC4gQ291bGQgYWxzbyB1c2Ugc21kX2lmDQpmdW5jdGlvbiBzbWRfeG1sX2lmX3By ZXYoJGF0dHMsICR0aGluZykgew0KCWdsb2JhbCAkc21kX3htbF9wZ2luZm87DQoNCgkkcmVz ID0gJHNtZF94bWxfcGdpbmZvICYmICRzbWRfeG1sX3BnaW5mb1sne3NtZF94bWxfcHJldnBh Z2V9J10gIT0gJyc7DQoJcmV0dXJuIHBhcnNlKEV2YWxFbHNlKHN0cnRyKCR0aGluZywgJHNt ZF94bWxfcGdpbmZvKSwgJHJlcykpOw0KfQ0KZnVuY3Rpb24gc21kX3htbF9pZl9uZXh0KCRh dHRzLCAkdGhpbmcpIHsNCglnbG9iYWwgJHNtZF94bWxfcGdpbmZvOw0KDQoJJHJlcyA9ICRz bWRfeG1sX3BnaW5mbyAmJiAkc21kX3htbF9wZ2luZm9bJ3tzbWRfeG1sX25leHRwYWdlfSdd ICE9ICcnOw0KCXJldHVybiBwYXJzZShFdmFsRWxzZShzdHJ0cigkdGhpbmcsICRzbWRfeG1s X3BnaW5mbyksICRyZXMpKTsNCn0iO3M6NDoidHlwZSI7czoxOiIwIjtzOjU6Im9yZGVyIjtz OjE6IjUiO3M6NToiZmxhZ3MiO3M6MToiMCI7czo0OiJoZWxwIjtzOjI0MTU0OiI8ZGl2IGlk PSJzbWRfaGVscCI+CgoJPGgxPnNtZF94bWw8L2gxPgoKCTxwPllhbmsgYml0cyBvdXQgb2Yg YW55IGh1bmsgb2YgPHNwYW4gY2xhc3M9ImNhcHMiPlhNTDwvc3Bhbj4gYW5kIHJlZm9ybWF0 IGl0IHRvIHlvdXIgb3duIG5lZWRzLiBHcmVhdCBmb3IgcHVsbGluZyBmZWVkIGluZm8gaW50 byB5b3VyIFRleHRwYXR0ZXJuIHNpdGUsIGZvciBleGFtcGxlIGZyb20gZGVsaWNpb3VzLmNv bS48L3A+CgoJPGgyPkZlYXR1cmVzPC9oMj4KCgk8dWw+CgkJPGxpPlNwZWNpZnkgeW91ciA8 c3BhbiBjbGFzcz0iY2FwcyI+WE1MPC9zcGFuPiBkYXRhIGZyb20gYW55IDxzcGFuIGNsYXNz PSJjYXBzIj5VUkw8L3NwYW4+ICYjODIxMjsgaW50ZXJuYWwgb3IgZXh0ZXJuYWwgdG8gPHNw YW4gY2xhc3M9ImNhcHMiPlRYUDwvc3Bhbj48L2xpPgoJCTxsaT5TZWxlY3RpdmVseSBleHRy YWN0IGFueSBpdGVtcyBpbiB5b3VyIHJlY29yZCBzZXQ8L2xpPgoJCTxsaT5Vc2UgYSBGb3Jt IG9yIHRoZSBwbHVnaW4gY29udGFpbmVyIHRvIG91dHB1dCBkYXRhIHlvdSBoYXZlIGV4dHJh Y3RlZDwvbGk+CgkJPGxpPjxzcGFuIGNsYXNzPSJjYXBzIj5YTUw8L3NwYW4+IHRhZyBhdHRy aWJ1dGVzIGFyZSBhdmFpbGFibGUgYXMgd2VsbDwvbGk+CgkJPGxpPlN1cHBvcnRzIHBhZ2lu YXRpb24gb2YgcmVzdWx0cyB3aXRoIGxpbWl0L29mZnNldDwvbGk+Cgk8L3VsPgoKCTxoMiBp ZD0iYXV0aG9yIj5BdXRob3I8L2gyPgoKCTxwPjxhIGhyZWY9Imh0dHA6Ly9zdGVmZGF3c29u LmNvbS9jb250YWN0Ij5TdGVmIERhd3NvbjwvYT4uIEZvciBvdGhlciBzb2Z0d2FyZSBieSBt ZSwgb3IgdG8gbWFrZSBhIGRvbmF0aW9uLCBzZWUgdGhlIDxhIGhyZWY9Imh0dHA6Ly9zdGVm ZGF3c29uLmNvbS9zdyI+c29mdHdhcmUgcGFnZTwvYT4uPC9wPgoKCTxoMiBpZD0iaW5zdGFs bCI+SW5zdGFsbGF0aW9uIC8gVW5pbnN0YWxsYXRpb248L2gyPgoKCTxwIGNsYXNzPSJyZXF1 aXJlZCI+UmVxdWlyZXMgPHNwYW4gY2xhc3M9ImNhcHMiPlBIUDwvc3Bhbj4gNSs8L3A+CgoJ PHA+RG93bmxvYWQgdGhlIHBsdWdpbiBmcm9tIGVpdGhlciA8YSBocmVmPSJodHRwOi8vdGV4 dHBhdHRlcm4ub3JnL3BsdWdpbnMvMTEzOC9zbWRfeG1sIj50ZXh0cGF0dGVybi5vcmc8L2E+ LCBvciB0aGUgc29mdHdhcmUgcGFnZSBhYm92ZSwgcGFzdGUgdGhlIGNvZGUgaW50byB0aGUg PHNwYW4gY2xhc3M9ImNhcHMiPlRYUDwvc3Bhbj4gQWRtaW4gLSZndDsgUGx1Z2lucyBwYW5l LCBpbnN0YWxsIGFuZCBlbmFibGUgdGhlIHBsdWdpbi4gVmlzaXQgdGhlIDxhIGhyZWY9Imh0 dHA6Ly9mb3J1bS50ZXh0cGF0dGVybi5jb20vdmlld3RvcGljLnBocD9pZD0zMjcxOCI+Zm9y dW0gdGhyZWFkPC9hPiBmb3IgbW9yZSBpbmZvIG9yIHRvIHJlcG9ydCBvbiB0aGUgc3VjY2Vz cyBvciBvdGhlcndpc2Ugb2YgdGhlIHBsdWdpbi48L3A+CgoJPHA+VG8gcmVtb3ZlIHRoZSBw bHVnaW4sIHNpbXBseSBkZWxldGUgaXQgZnJvbSB0aGUgQWRtaW4tJmd0O1BsdWdpbnMgdGFi LjwvcD4KCgk8aDI+VXNhZ2U6IHNtZF94bWw8L2gyPgoKCTxwPlBsYWNlIGEgPGNvZGU+Jmx0 O3R4cDpzbWRfeG1sJmd0OzwvY29kZT4gdGFnIHdoZXJlIHlvdSB3aXNoIHRvIHByb2Nlc3Mg PHNwYW4gY2xhc3M9ImNhcHMiPlhNTDwvc3Bhbj4gZGF0YSAmIzgyMTI7IHRoaXMgY291bGQg YmUgZnJvbSBhIGZlZWQuIFNpbmNlIHRoaXMgcGx1Z2luIGlzIGJlc3QgZXhwbGFpbmVkIGJ5 IGV4YW1wbGUsIGFzc3VtZSB0aGUgZm9sbG93aW5nIDxzcGFuIGNsYXNzPSJjYXBzIj5YTUw8 L3NwYW4+IGRvY3VtZW50IGlzIHByZXNlbnRlZCB0byB0aGUgcGx1Z2luOjwvcD4KCjxwcmUg Y2xhc3M9ImJsb2NrIj48Y29kZSBjbGFzcz0iYmxvY2siPiZsdDtlbXBsb3llZXMmZ3Q7CiAg ICZsdDtlbXBsb3llZSZndDsKICAgICAgJmx0O25hbWUgaWQ9JnF1b3Q7d2lsZV9lX2NveW90 ZSZxdW90OyZndDtXaWxlIEUuIENveW90ZSZsdDsvbmFtZSZndDsKICAgICAgJmx0O2pvYl90 aXRsZSZndDtTY2hlbWVyJmx0Oy9qb2JfdGl0bGUmZ3Q7CiAgICAgICZsdDtkZXB0Jmd0O0FD TUUgY29ycCZsdDsvZGVwdCZndDsKICAgICAgJmx0O3F1YWxpdHkmZ3Q7Q3VubmluZyZsdDsv cXVhbGl0eSZndDsKICAgICAgJmx0O3F1YWxpdHkmZ3Q7RGV2aW91c25lc3MmbHQ7L3F1YWxp dHkmZ3Q7CiAgICAgICZsdDtxdWFsaXR5Jmd0O1BlcnNpc3RlbmNlJmx0Oy9xdWFsaXR5Jmd0 OwogICAmbHQ7L2VtcGxveWVlJmd0OwogICAmbHQ7ZW1wbG95ZWUmZ3Q7CiAgICAgICZsdDtu YW1lIGlkPSZxdW90O3JvYWRfcnVubmVyJnF1b3Q7Jmd0O1JvYWQgUnVubmVyJmx0Oy9uYW1l Jmd0OwogICAgICAmbHQ7am9iX3RpdGxlJmd0O1NlZWQgZXhwZXJ0Jmx0Oy9qb2JfdGl0bGUm Z3Q7CiAgICAgICZsdDtkZXB0Jmd0O0V2YXNpb24mbHQ7L2RlcHQmZ3Q7CiAgICAgICZsdDtx dWFsaXR5Jmd0O1NwZWVkJmx0Oy9xdWFsaXR5Jmd0OwogICAgICAmbHQ7cXVhbGl0eSZndDtN ZWVwIG1lZXAmbHQ7L3F1YWxpdHkmZ3Q7CiAgICZsdDsvZW1wbG95ZWUmZ3Q7CiZsdDsvZW1w bG95ZWVzJmd0Owo8L2NvZGU+PC9wcmU+CgoJPGgzPkF0dHJpYnV0ZXM6IDxjb2RlPnNtZF94 bWw8L2NvZGU+PC9oMz4KCgk8cD5Vc2UgdGhlIGZvbGxvd2luZyBhdHRyaWJ1dGVzIHRvIGNv bmZpZ3VyZSB0aGUgc21kX3htbCBwbHVnaW4gKHNoYWRlZCBhdHRyaWJ1dGVzIGFyZSBtYW5k YXRvcnkpIDo8L3A+CgoJPGg0PkRhdGEgaW1wb3J0PC9oND4KCgk8dWw+CgkJPGxpPjxzcGFu IGNsYXNzPSJhdG5tIG1hbmQiPmRhdGE8L3NwYW4+IDogdGhlIDxzcGFuIGNsYXNzPSJjYXBz Ij5YTUw8L3NwYW4+IGRhdGEgc291cmNlLiBNb3N0IG9mIHRoZSB0aW1lIHRoaXMgd2lsbCBi ZSBhIDxzcGFuIGNsYXNzPSJjYXBzIj5VUkw8L3NwYW4+LCB0aG91Z2ggeW91IGNvdWxkIGhh cmQtY29kZSB0aGUgPHNwYW4gY2xhc3M9ImNhcHMiPlhNTDwvc3Bhbj4gZGF0YSBvdCB1c2Ug YW5vdGhlciA8c3BhbiBjbGFzcz0iY2FwcyI+VFhQPC9zcGFuPiB0YWcgaGVyZSAoZS5nLiA8 Y29kZT4mbHQ7dHhwOnZhcmlhYmxlIC8mZ3Q7PC9jb2RlPik8L2xpPgoJCTxsaT48c3BhbiBj bGFzcz0iYXRubSBtYW5kIj5yZWNvcmQ8L3NwYW4+IDogdGhlIG5hbWUgb2YgdGhlIDxzcGFu IGNsYXNzPSJjYXBzIj5YTUw8L3NwYW4+IHRhZyB0aGF0IHN1cnJvdW5kcyBlYWNoIHJlY29y ZCBvZiBkYXRhIGluIHlvdXIgZmVlZC4gVGh1cyB5b3Ugd291bGQgbmVlZCA8Y29kZT5yZWNv cmQ9JnF1b3Q7ZW1wbG95ZWUmcXVvdDs8L2NvZGU+IGluIHRoZSBhYm92ZSBkb2N1bWVudDwv bGk+CgkJPGxpPjxzcGFuIGNsYXNzPSJhdG5tIG1hbmQiPmZpZWxkczwvc3Bhbj4gOiBsaXN0 IG9mIDxzcGFuIGNsYXNzPSJjYXBzIj5YTUw8L3NwYW4+IGZpZWxkcyB5b3Ugd2FudCB0byBl eHRyYWN0IGZyb20gZWFjaCByZWNvcmQuIEZvciBleGFtcGxlLCA8Y29kZT5maWVsZHM9JnF1 b3Q7bmFtZSwgZGVwdCZxdW90OzwvY29kZT4uIEVhY2ggdGFnIHlvdSBzcGVjaWZ5IGhlcmUg d2lsbCAgY3JlYXRlIGEgc2ltaWxhcmx5LW5hbWVkIDxhIGhyZWY9IiNyZXBzIj5yZXBsYWNl bWVudCB0YWc8L2E+IHRoYXQgeW91IG1heSB1c2UgaW4geW91ciBmb3JtL2NvbnRhaW5lciB0 byBkaXNwbGF5IHRoZSByZWxldmFudCBwaWVjZSBvZiBkYXRhLiBJbiB0aGlzIGNhc2UsIDxj b2RlPntuYW1lfTwvY29kZT4gYW5kIDxjb2RlPntkZXB0fTwvY29kZT4gd291bGQgYmUgYXZh aWxhYmxlIGluIHlvdXIgb3V0cHV0PC9saT4KCQk8bGk+PHNwYW4gY2xhc3M9ImF0bm0iPnNr aXA8L3NwYW4+IDogbGlzdCBvZiA8c3BhbiBjbGFzcz0iY2FwcyI+WE1MPC9zcGFuPiBmaWVs ZHMgeW91IHdhbnQgdG8gc2tpcCBvdmVyIGluIGVhY2ggcmVjb3JkLiBVc2VmdWwgaWYgYSBm aWVsZCB5b3Ugd2lzaCB0byBleHRyYWN0IGlzIHVzZWQgaW4gdHdvIHBsYWNlcyBpbiB0aGUg c2FtZSByZWNvcmQuIFNlZSA8YSBocmVmPSIjZWcyIj5leGFtcGxlIDI8L2E+IGZvciBhIHBy YWN0aWNhbCBhcHBsaWNhdGlvbjwvbGk+CgkJPGxpPjxzcGFuIGNsYXNzPSJhdG5tIj5kZWZh dWx0czwvc3Bhbj4gOiBsaXN0IG9mIGRlZmF1bHQgdmFsdWVzIHlvdSB3aXNoIHRvIHNldCBp ZiBhbnkgPGNvZGU+ZmllbGRzPC9jb2RlPiBhcmUgbm90IHNldCBpbiB5b3VyIGRvY3VtZW50 LiBTcGVjaWZ5IGRlZmF1bHRzIGluIHBhaXJzIG9mIGVudHJpZXMgbGlrZSB0aGlzOiA8Y29k ZT5kZWZhdWx0cz0mcXVvdDtmaWVsZDpkZWZhdWx0LCBmaWVsZDpkZWZhdWx0LCAuLi4mcXVv dDs8L2NvZGU+LiBUaGUgY29sb24gY2FuIGJlIGFsdGVyZWQgYnkgPGNvZGU+cGFyYW1fZGVs aW08L2NvZGU+PC9saT4KCQk8bGk+PHNwYW4gY2xhc3M9ImF0bm0iPnNldF9lbXB0eTwvc3Bh bj4gOiBhbnkgZmllbGRzIHRoYXQgYXJlIG5vdCBzZXQgaW4geW91ciBkb2N1bWVudCB3aWxs IG5vcm1hbGx5IG1lYW4gdGhhdCB5b3UmIzgyMTc7bGwgc2VlIHRoZSByYXcgPGNvZGU+e3Jl cGxhY2VtZW50IHRhZ308L2NvZGU+IGluIHlvdXIgb3V0cHV0LiBVc2UgPGNvZGU+c2V0X2Vt cHR5PSZxdW90OzEmcXVvdDs8L2NvZGU+IHRvIGVuc3VyZSB0aGF0IGFsbCBlbXB0eSBub2Rl cyBhcmUgc2V0IHRvIGFuIGVtcHR5IHZhbHVlLiBBbnkgPGNvZGU+ZGVmYXVsdHM8L2NvZGU+ IHlvdSBzcGVjaWZ5IHdpbGwgdGFrZSBwcmVjZWRlbmNlIG92ZXIgZW1wdGllczwvbGk+CgkJ PGxpPjxzcGFuIGNsYXNzPSJhdG5tIj5jYWNoZV90aW1lPC9zcGFuPiA6IGlmIHNldCwgdGhl IDxzcGFuIGNsYXNzPSJjYXBzIj5YTUw8L3NwYW4+IGRvY3VtZW50IGlzIGNhY2hlZCBpbiB0 aGUgPHNwYW4gY2xhc3M9ImNhcHMiPlRYUDwvc3Bhbj4gcHJlZnMuIFN1YnNlcXVlbnQgY2Fs bHMgdG8gc21kX3htbCAoZS5nLiByZWZyZXNoaW5nIHRoZSBwYWdlKSB3aWxsIHJlYWQgdGhl IGNhY2hlZCBpbmZvcm1hdGlvbiBpbnN0ZWFkIG9mIGhpdHRpbmcgdGhlIDxjb2RlPmRhdGE8 L2NvZGU+IDxzcGFuIGNsYXNzPSJjYXBzIj5VUkw8L3NwYW4+LCB0aHVzIGN1dHRpbmcgZG93 biBvbiBuZXR3b3JrIHRyYWZmaWMuIEFmdGVyIDxjb2RlPmNhY2hlX3RpbWU8L2NvZGU+ICYj ODIxMjsgc3BlY2lmaWVkIGluIHNlY29uZHMgJiM4MjEyOyBoYXMgZWxhcHNlZCwgdGhlIG5l eHQgcGFnZSByZWZyZXNoIHdpbGwgY2F1c2UgdGhlIGRvY3VtZW50IHRvIGJlIGZldGNoZWQg ZnJvbSB0aGUgPGNvZGU+ZGF0YTwvY29kZT4gPHNwYW4gY2xhc3M9ImNhcHMiPlVSTDwvc3Bh bj4gYWdhaW4uIFlvdSBtYXksIGhvd2V2ZXIsIGZvcmNlIGEgcmVmcmVzaCBmcm9tIHRoZSBk YXRhIDxzcGFuIGNsYXNzPSJjYXBzIj5VUkw8L3NwYW4+IGF0IGFueSB0aW1lIGJ5IGFkZGlu ZyA8Y29kZT4mYW1wO2ZvcmNlX3JlYWQ9MTwvY29kZT4gdG8gdGhlIGJyb3dzZXIgPHNwYW4g Y2xhc3M9ImNhcHMiPlVSTDwvc3Bhbj4gKHlvdSBjYW4gdXNlIHNtZF9wcmVmYWxpemVyIGFu ZCBzZWFyY2ggZm9yICYjODIxNjtzbWRfeG1sJiM4MjE3OyB0byBmaW5kIHRoZSBjYWNoZWQg ZG9jdW1lbnRzICYjODIxMjsgZWFjaCBpcyByZWZlcmVuY2VkIGJ5IGl0cyB1bmlxdWUgSUQp PC9saT4KCTwvdWw+CgoJPGg0Pk1hbmlwdWxhdGlvbjwvaDQ+CgoJPHVsPgoJCTxsaT48c3Bh biBjbGFzcz0iYXRubSI+dXBwZXJjYXNlPC9zcGFuPiA6IHNldCB0byAxIHRvIGZvcmNlIGFs bCA8c3BhbiBjbGFzcz0iY2FwcyI+WE1MPC9zcGFuPiB0YWcgbmFtZXMgdG8gYmUgaW4gdXBw ZXIgY2FzZSwgdGh1cyB5b3Ugd291bGQgaGF2ZSB0byBzcGVjaWZ5IDxjb2RlPmZpZWxkcz0m cXVvdDtOQU1FLCBERVBUJnF1b3Q7PC9jb2RlPiBpbiBvcmRlciB0byBzdWNjZXNzZnVsbHkg ZXh0cmFjdCB0aG9zZSBmaWVsZHM8L2xpPgoJCTxsaT48c3BhbiBjbGFzcz0iYXRubSI+dGFy Z2V0X2VuYzwvc3Bhbj4gOiBjaGFyYWN0ZXIgZW5jb2RpbmcgdG8gYXBwbHkgdG8gdGhlIHBh cnNlZCA8c3BhbiBjbGFzcz0iY2FwcyI+WE1MPC9zcGFuPiBkYXRhLiBDaG9vc2UgZnJvbSA8 Y29kZT5JU08tODg1OS0xPC9jb2RlPiwgPGNvZGU+VVMtQVNDSUk8L2NvZGU+LCBvciA8Y29k ZT5VVEYtODwvY29kZT4uIERlZmF1bHQ6IDxjb2RlPlVURi04PC9jb2RlPjwvbGk+CgkJPGxp PjxzcGFuIGNsYXNzPSJhdG5tIj5jb25jYXQ8L3NwYW4+IDogYW55IGR1cGxpY2F0ZSB0YWdz IGluIHRoZSBzdHJlYW0gYXJlIHVzdWFsbHkgY29uY2F0ZW5hdGVkIHRvZ2V0aGVyLiBJZiB5 b3Ugd2lzaCB0byB0dXJuIHRoaXMgZmVhdHVyZSBvZmYgc28gdGhhdCBvbmx5IHRoZSBsYXN0 IHRhZyYjODIxNztzIGNvbnRlbnRzIHJlbWFpbnMsIHNldCA8Y29kZT5jb25jYXQ9JnF1b3Q7 MCZxdW90OzwvY29kZT4uIERlZmF1bHQ6IDE8L2xpPgoJCTxsaT48c3BhbiBjbGFzcz0iYXRu bSI+Y29udmVydDwvc3Bhbj4gOiBpZiB5b3VyIGRhdGEgc3RyZWFtIGNvbnRhaW5zIGRhdGEg eW91IGRvbiYjODIxNzt0IHdhbnQgb3IgZGF0YSB0aGF0IHlvdSB3aXNoIHRvIHRyYW5zbGF0 ZSAoZm9yIGV4YW1wbGUsIGNoYXJhY3RlciBlbnRpdGllcykgeW91IGNhbiBsaXN0IHRoZW0g aGVyZS4gSXRlbXMgYXJlIHNwZWNpZmllZCBpbiBwYWlycyBzZXBhcmF0ZWQgYnkgPGNvZGU+ cGFyYW1fZGVsaW08L2NvZGU+OyB0aGUgZmlyc3QgaXMgdGhlIGl0ZW0gdG8gc2VhcmNoIGZv ciBhbmQgdGhlIHNlY29uZCBpcyBpdHMgcmVwbGFjZW1lbnQuIEZvciBleGFtcGxlOiA8Y29k ZT5jb252ZXJ0PSZxdW90OyZhbXA7YW1wOyMwMzk6JiMzOTsmcXVvdDs8L2NvZGU+IHdvdWxk IHJlcGxhY2UgYWxsIG9jY3VycmVuY2VzIG9mIDxjb2RlPiZhbXA7YW1wOyMwMzk8L2NvZGU+ IHdpdGggYW4gYXBvc3Ryb3BoZSBjaGFyYWN0ZXIuIE5vdGUgdGhhdCB0aGUgcmVwbGFjZW1l bnRzIGFyZSBwZXJmb3JtZWQgb24gdGhlIHJhdyBzdHJlYW0gPGVtPmJlZm9yZTwvZW0+IGl0 IGlzIHBhcnNlZCBhbmQgPGVtPmFmdGVyPC9lbT4gaXQgaXMgY2FjaGVkLiBBbHNvIHRha2Ug Y2FyZSB3aGVuIGRlY29kaW5nIGRvdWJsZSBxdW90ZXM7IHRoaXMgaXMgdGhlIGNvcnJlY3Qg bWV0aG9kOiA8Y29kZT5jb252ZXJ0PSZxdW90OyZhbXA7YW1wO3F1b3Q7OiZxdW90OyZxdW90 OyZxdW90OzwvY29kZT4gKG5vdGUgdGhlIGRvdWJsZSBxdW90ZSBpcyBlc2NhcGVkIGJ5IHB1 dHRpbmcgPGVtPnR3bzwvZW0+IGRvdWJsZSBxdW90ZSBjaGFyYWN0ZXJzIGluKTwvbGk+CgkJ PGxpPjxzcGFuIGNsYXNzPSJhdG5tIj5saW5raWZ5PC9zcGFuPiA6IGxpc3Qgb2YgPHNwYW4g Y2xhc3M9ImNhcHMiPlhNTDwvc3Bhbj4gdGFnIG5hbWVzIHRoYXQgbWF5IGNvbnRhaW4gaHlw ZXJsaW5rcy4gQW55IGxpbmsgaW4gdGhlIGdpdmVuIGZpZWxkcyB3aWxsIGJlIGNvbnZlcnRl ZCB0byBhbiBodG1sIGFuY2hvciBoeXBlcmxpbms8L2xpPgoJPC91bD4KCgk8aDQ+Rm9ybXMg YW5kIHBhZ2luZzwvaDQ+CgoJPHVsPgoJCTxsaT48c3BhbiBjbGFzcz0iYXRubSI+Zm9ybTwv c3Bhbj4gOiB0aGUgPHNwYW4gY2xhc3M9ImNhcHMiPlRYUDwvc3Bhbj4gRm9ybSB3aXRoIHdo aWNoIHRvIHBhcnNlIGVhY2ggcmVjb3JkLiBZb3UgbWF5IHVzZSB0aGUgcGx1Z2luIGFzIGEg Y29udGFpbmVyIGluc3RlYWQgaWYgeW91IHByZWZlcjwvbGk+CgkJPGxpPjxzcGFuIGNsYXNz PSJhdG5tIj5wYWdlZm9ybTwvc3Bhbj4gOiBvcHRpb25hbCA8c3BhbiBjbGFzcz0iY2FwcyI+ VFhQPC9zcGFuPiBmb3JtIHVzZWQgdG8gc3BlY2lmeSB0aGUgbGF5b3V0IG9mIGFueSBwYWdp bmcgbmF2aWdhdGlvbiBhbmQgc3RhdGlzdGljcyBzdWNoIGFzIHBhZ2UgbnVtYmVyLCBxdWFu dGl0eSBvZiByZWNvcmRzIHBlciBwYWdlLCB0b3RhbCBudW1iZXIgb2YgcmVjb3JkcywgZXRj LiBTZWUgPGEgaHJlZj0iI3BncmVwcyI+cGFnaW5nIHJlcGxhY2VtZW50IHRhZ3M8L2E+PC9s aT4KCQk8bGk+PHNwYW4gY2xhc3M9ImF0bm0iPnBhZ2Vwb3M8L3NwYW4+IDogdGhlIHBvc2l0 aW9uIG9mIHRoZSBwYWdpbmcgaW5mb3JtYXRpb24uIE9wdGlvbnMgYXJlIDxjb2RlPmJlbG93 PC9jb2RlPiAodGhlIGRlZmF1bHQpLCA8Y29kZT5hYm92ZTwvY29kZT4sIG9yIGJvdGggb2Yg dGhlbSBzZXBhcmF0ZWQgYnkgPGNvZGU+ZGVsaW08L2NvZGU+PC9saT4KCQk8bGk+PHNwYW4g Y2xhc3M9ImF0bm0iPmxpbWl0PC9zcGFuPiA6IHNob3cgdGhpcyBtYW55IHJlc3VsdHMgcGVy IHBhZ2UuIFNldHRpbmcgYSA8Y29kZT5saW1pdDwvY29kZT4gc21hbGxlciB0aGFuIHRoZSB0 b3RhbCBudW1iZXIgcmVjb3JkcyBzd2l0Y2hlcyBwYWdpbmcgb24gYXV0b21hdGljYWxseSBz byB5b3UgY2FuIHVzZSB0aGUgPGNvZGU+Jmx0O3R4cDpvbGRlciAvJmd0OzwvY29kZT4gYW5k IDxjb2RlPiZsdDt0eHA6bmV3ZXIgLyZndDs8L2NvZGU+IHRhZ3MgaW5zaWRlIHlvdXIgPGNv ZGU+cGFnZWZvcm08L2NvZGU+IHRvIHN0ZXAgdGhyb3VnaCBlYWNoIHBhZ2Ugb2YgcmVzdWx0 cy4gWW91IG1heSBhbHNvIGNvbnN0cnVjdCB5b3VyIG93biBwYWdpbmcgKHNlZSA8YSBocmVm PSIjZWczIj5leGFtcGxlIDM8L2E+KTwvbGk+CgkJPGxpPjxzcGFuIGNsYXNzPSJhdG5tIj5v ZmZzZXQ8L3NwYW4+IDogc2tpcCB0aGlzIG1hbnkgcm93cyBiZWZvcmUgb3V0cHV0dGluZyB0 aGUgcmVzdWx0cy4gSWYgeW91IHNwZWNpZnkgYSBuZWdhdGl2ZSA8Y29kZT5vZmZzZXQ8L2Nv ZGU+IHlvdSBzdGFydCB0aGF0IG1hbnkgcmVjb3JkcyBmcm9tIHRoZSBlbmQgb2YgdGhlIGRv Y3VtZW50PC9saT4KCQk8bGk+PHNwYW4gY2xhc3M9ImF0bm0iPnBhZ2V2YXI8L3NwYW4+IDog aWYgeW91IGFyZSBwdXR0aW5nIHNtZF94bWwgb24gdGhlIHNhbWUgcGFnZSBhcyBhIHN0YW5k YXJkIGFydGljbGUgbGlzdCwgdGhlIGJ1aWx0LWluIG5ld2VyIGFuZCBvbGRlciB0YWdzIHdp bGwgY2xhc2ggd2l0aCB0aG9zZSBvZiBzbWRfeG1sOyBjbGlja2luZyBuZXh0L3ByZXYgd2ls bCBzdGVwIHRocm91Z2ggYm90aCB5b3VyIHJlc3VsdCBzZXQgYW5kIHlvdXIgYXJ0aWNsZSBs aXN0LiBTcGVjaWZ5IGEgZGlmZmVyZW50IHZhcmlhYmxlIG5hbWUgaGVyZSBzbyB0aGUgdHdv IGxpc3RzIGNhbiBiZSBuYXZpZ2F0ZWQgaW5kZXBlbmRlbnRseSwgZS5nLiA8Y29kZT5wYWdl dmFyPSZxdW90O3hwYWdlJnF1b3Q7PC9jb2RlPi4gTm90ZSB0aGF0IGlmIHlvdSBjaGFuZ2Ug dGhpcywgeW91IHdpbGwgaGF2ZSB0byBnZW5lcmF0ZSB5b3VyIG93biBjdXN0b20gbmV3ZXIv b2xkZXIgbGlua3MgKHNlZSA8YSBocmVmPSIjZWc0Ij5leGFtcGxlIDQ8L2E+KSBhbmQgdGhl IDxhIGhyZWY9IiNzbWRfeGlmIj5jb25kaXRpb25hbCB0YWdzPC9hPi4gVGhlcmUgaXMgYWxz byBhIHNwZWNpYWwgdmFsdWUgPGNvZGU+U01EX1hNTF9VTklRVUVfSUQ8L2NvZGU+IHdoaWNo IGFzc2lnbnMgdGhlIHRhZ3MmIzgyMTc7IHVuaXF1ZSBJRCBhcyB0aGUgcGFnaW5nIHZhcmlh YmxlLiBTZWUgPGEgaHJlZj0iI2VnNSI+ZXhhbXBsZSA1PC9hPiBmb3IgbW9yZS4gRGVmYXVs dDogPGNvZGU+cGc8L2NvZGU+PC9saT4KCTwvdWw+CgoJPGg0PlRhZy9jbGFzcy9mb3JtYXR0 aW5nIGF0dHJpYnV0ZXM8L2g0PgoKCTx1bD4KCQk8bGk+PHNwYW4gY2xhc3M9ImF0bm0iPndy YXB0YWc8L3NwYW4+IDogdGhlIChYKUhUTUwgdGFnLCB3aXRob3V0IGJyYWNrZXRzLCB0byBz dXJyb3VuZCBlYWNoIHJlY29yZCB5b3Ugb3V0cHV0PC9saT4KCQk8bGk+PHNwYW4gY2xhc3M9 ImF0bm0iPmJyZWFrPC9zcGFuPiA6IHRoZSAoWClIVE1MIHRhZywgd2l0aG91dCBicmFja2V0 cywgdG8gc3Vycm91bmQgZWFjaCBmaWVsZCB5b3Ugb3V0cHV0PC9saT4KCQk8bGk+PHNwYW4g Y2xhc3M9ImF0bm0iPmNsYXNzPC9zcGFuPiA6IHRoZSA8c3BhbiBjbGFzcz0iY2FwcyI+Q1NT PC9zcGFuPiBjbGFzcyBuYW1lIHRvIGFwcGx5IHRvIHRoZSA8Y29kZT53cmFwdGFnPC9jb2Rl PjwvbGk+Cgk8L3VsPgoKCTxoND5QbHVnaW4gY3VzdG9taXNhdGlvbjwvaDQ+CgoJPHVsPgoJ CTxsaT48c3BhbiBjbGFzcz0iYXRubSI+ZGVsaW08L3NwYW4+IDogdGhlIGRlbGltaXRlciB0 byB1c2UgYmV0d2VlbiBpdGVtcyBpbiB0aGUgcGx1Z2luIGF0dHJpYnV0ZXMuIERlZmF1bHQ6 IGNvbW1hPC9saT4KCQk8bGk+PHNwYW4gY2xhc3M9ImF0bm0iPnBhcmFtX2RlbGltPC9zcGFu PiA6IHRoZSBkZWxpbWl0ZXIgdG8gdXNlIGJldHdlZW4gaXRlbXMgaW4gPHNwYW4gY2xhc3M9 ImNhcHMiPlhNTDwvc3Bhbj4gZGF0YSBhdHRyaWJ1dGVzLiBEZWZhdWx0OiBjb2xvbjwvbGk+ CgkJPGxpPjxzcGFuIGNsYXNzPSJhdG5tIj5jb25jYXRfZGVsaW08L3NwYW4+IDogdGhlIGRl bGltaXRlciB0byB1c2UgYmV0d2VlbiBpZGVudGljYWxseS1uYW1lZCB0YWdzIGluIHRoZSA8 c3BhbiBjbGFzcz0iY2FwcyI+WE1MPC9zcGFuPiBkYXRhIHN0cmVhbS4gRGVmYXVsdDogc3Bh Y2U8L2xpPgoJCTxsaT48c3BhbiBjbGFzcz0iYXRubSI+dHJhbnNwb3J0PC9zcGFuPiA6IChz aG91bGQgbm90IGJlIG5lZWRlZCkgaWYgeW91IHdvdWxkIGxpa2UgdG8gZm9yY2UgdGhlIHBs dWdpbiB0byB1c2UgYSBwYXJ0aWN1bGFyIDxzcGFuIGNsYXNzPSJjYXBzIj5IVFRQPC9zcGFu PiB0cmFuc3BvcnQgbWVjaGFuaXNtIHRvIGZldGNoIHlvdXIgPGNvZGU+ZGF0YTwvY29kZT4g eW91IGNhbiBzcGVjaWZ5IGl0IGhlcmUuIENob29zZSBmcm9tIDxjb2RlPmZzb2NrPC9jb2Rl PiBvciA8Y29kZT5jdXJsPC9jb2RlPi4gRGVmYXVsdDogPGNvZGU+ZnNvY2s8L2NvZGU+PC9s aT4KCQk8bGk+PHNwYW4gY2xhc3M9ImF0bm0iPmxpbmVfbGVuZ3RoPC9zcGFuPiA6IGlmIHlv dSBhcmUgdXNpbmcgdGhlIDxjb2RlPmZzb2NrPC9jb2RlPiB0cmFuc3BvcnQgbWVjaGFuaXNt LCB0aGUgcGx1Z2luIGdyYWJzIHRoZSA8c3BhbiBjbGFzcz0iY2FwcyI+WE1MPC9zcGFuPiBk b2N1bWVudCBsaW5lIGJ5IGxpbmUgYW5kIHVzZXMgYSBtYXhpbXVtIGxpbmUgbGVuZ3RoIG9m IDgxOTIgY2hhcmFjdGVycyBieSBkZWZhdWx0LiBUaGlzIGlzIHVzdWFsbHkgZ29vZCBlbm91 Z2ggYmVjYXVzZSBtb3N0IGZlZWRzIGNvbnRhaW4gbmV3bGluZXMsIGJ1dCBzb21lIChlLmcu IEdvb2dsZSBTcHJlYWRzaGVldCkgZG9uJiM4MjE3O3QgaGF2ZSBhbnkgbmV3bGluZXMgaW4g dGhlbS4gVG8gc3VjY2Vzc2Z1bGx5IHBhcnNlIHN1Y2ggZG9jdW1lbnRzIHlvdSBtYXkgbmVl ZCB0byBpbmNyZWFzZSB0aGUgbGluZSBsZW5ndGguIEluIHRoZXNlIHNpdHVhdGlvbnMsIGhv d2V2ZXIsIGl0IGlzIGhpZ2hseSByZWNvbW1lbmRlZCB0byBzd2l0Y2ggdG8gPGNvZGU+dHJh bnNwb3J0PSZxdW90O2N1cmwmcXVvdDs8L2NvZGU+IGluc3RlYWQgKGlmIHlvdSBjYW4pIGJl Y2F1c2UgaXQgZG9lcyBub3QgaGF2ZSBhbnkgbGluZSBsZW5ndGggcmVzdHJpY3Rpb25zPC9s aT4KCQk8bGk+PHNwYW4gY2xhc3M9ImF0bm0iPmhhc2hzaXplPC9zcGFuPiA6IChzaG91bGQg bm90IGJlIG5lZWRlZCkgd2hlbiBzcGVjaWZ5aW5nIGEgPGNvZGU+Y2FjaGVfdGltZTwvY29k ZT4gdGhlIHBsdWdpbiBhc3NpZ25zIGEgMzItY2hhcmFjdGVyLCB1bmlxdWUgcmVmZXJlbmNl IHRvIHRoZSBjdXJyZW50IHNtZF94bWwgYmFzZWQgb24geW91ciBpbXBvcnQgYXR0cmlidXRl cy4gPGNvZGU+aGFzaHNpemU8L2NvZGU+IGdvdmVybnMgdGhlIG1lY2hhbmlzbSBmb3IgbWFr aW5nIHRoaXMgbG9uZyByZWZlcmVuY2Ugc2hvcnRlci4gSXQgY29tcHJpc2VzIHR3byBudW1i ZXJzIHNlcGFyYXRlZCBieSBhIGNvbG9uOyB0aGUgZmlyc3QgaXMgdGhlIGxlbmd0aCBvZiB0 aGUgdW5pcWUgSUQsIHRoZSBzZWNvbmQgaXMgaG93IG1hbnkgY2hhcmFjdGVycyB0byBza2lw IHBhc3QgZWFjaCB0aW1lIGEgY2hhcmFjdGVyIGlzIGNob3Nlbi4gRm9yIGV4YW1wbGUsIGlm IHRoZSB1bmlxdWVfcmVmZXJlbmNlIHdhcyA8Y29kZT4wY2YyODU4NzliZjlkNmI4MTI1Mzll Yjc0OGZiYzhmNjwvY29kZT4gdGhlbiA8Y29kZT5oYXNoc2l6ZT0mcXVvdDs2OjUmcXVvdDs8 L2NvZGU+IHdvdWxkIG1ha2UgYSA2LWNoYXJhY3RlciB1bmlxdWUgSUQgdXNpbmcgZXZlcnkg NXRoIGNoYXJhY3RlcjsgaW4gb3RoZXIgd29yZHMgPGNvZGU+MDVmODk4PC9jb2RlPi4gSWYg YXQgYW55IHRpbWUsIHlvdSAmIzgyMjA7ZmFsbCBvZmYmIzgyMjE7IHRoZSBlbmQgb2YgdGhl IGxvbmcgc3RyaW5nLCB0aGUgcGx1Z2luIHdyYXBzIGJhY2sgdG8gdGhlIGJlZ2lubmluZyBv ZiB0aGUgc3RyaW5nIGFuZCBjb250aW51ZXMgY291bnRpbmcuIERlZmF1bHQ6IDxjb2RlPjY6 NTwvY29kZT48L2xpPgoJPC91bD4KCgk8aDMgaWQ9InJlcHMiPlJlcGxhY2VtZW50IHRhZ3M8 L2gzPgoKCTxwPkVhY2ggPHNwYW4gY2xhc3M9ImNhcHMiPlhNTDwvc3Bhbj4gZmllbGQgeW91 IGV4dHJhY3QgZnJvbSB5b3VyIGRhdGEgc3RyZWFtIGhhcyBhbiBlcXVpdmFsZW50bHktbmFt ZWQgcmVwbGFjZW1lbnQgdGFnIGF2YWlsYWJsZSBzbyB5b3UgbWF5IHVzZSBpdCBhbnl3aGVy ZSB5b3UgbGlrZSBpbiB5b3VyIEZvcm0vY29udGFpbmVyLiBTbywgaWYgeW91IGNob3NlIHRv IGV4dHJhY3QgPGNvZGU+ZmllbGRzPSZxdW90O25hbWUsIGpvYl90aXRsZSwgcXVhbGl0eSZx dW90OzwvY29kZT4geW91IHdvdWxkIGhhdmUgdGhlIGZvbGxvd2luZyByZXBsYWNlbWVudCB0 YWdzIGF2YWlsYWJsZSBkdXJpbmcgdGhlIGZpcnN0IHJlY29yZDo8L3A+CgoJPHVsPgoJCTxs aT48Y29kZT57bmFtZX08L2NvZGU+IDogV2lsZSBFLiBDb3lvdGU8L2xpPgoJCTxsaT48Y29k ZT57bmFtZTppZH08L2NvZGU+IDogd2lsZV9lX2NveW90ZTwvbGk+CgkJPGxpPjxjb2RlPntq b2JfdGl0bGV9PC9jb2RlPiA6IFNjaGVtZXI8L2xpPgoJCTxsaT48Y29kZT57cXVhbGl0eX08 L2NvZGU+IDogQ3VubmluZyBEZXZpb3VzbmVzcyBQZXJzaXN0ZW5jZTwvbGk+Cgk8L3VsPgoK CTxwPkFuZCBkdXJpbmcgdGhlIHNlY29uZCByZWNvcmQsIHRoZSBzYW1lIHJlcGxhY2VtZW50 IHRhZyBuYW1lcyB3b3VsZCByZWZlciB0byB0aGUgZm9sbG93aW5nIGl0ZW1zOjwvcD4KCgk8 dWw+CgkJPGxpPjxjb2RlPntuYW1lfTwvY29kZT4gOiBSb2FkIFJ1bm5lcjwvbGk+CgkJPGxp Pjxjb2RlPntuYW1lOmlkfTwvY29kZT4gOiByb2FkX3J1bm5lcjwvbGk+CgkJPGxpPjxjb2Rl Pntqb2JfdGl0bGV9PC9jb2RlPiA6IFNlZWQgZXhwZXJ0PC9saT4KCQk8bGk+PGNvZGU+e3F1 YWxpdHl9PC9jb2RlPiA6IFNwZWVkIE1lZXAgbWVlcDwvbGk+Cgk8L3VsPgoKCTxwPk5vdGUg dGhhdCB0aGUgYXR0cmlidXRlIGNhbGxlZCA8Y29kZT5pZDwvY29kZT4gdGhhdCBpcyBwYXJ0 IG9mIHRoZSA8Y29kZT4mbHQ7bmFtZSZndDs8L2NvZGU+IDxzcGFuIGNsYXNzPSJjYXBzIj5Y TUw8L3NwYW4+IHRhZyBoYXMgYmVlbiBleHRyYWN0ZWQgYW5kIGlzIG1hZGUgYXZhaWxhYmxl IGF1dG9tYXRpY2FsbHkuIEJ5IGRlZmF1bHQsIHRoZSBuYW1lcyBvZiBhdHRyaWJ1dGVzIGFy ZSBkZWZpbmVkIGFzIDxjb2RlPnt0YWc6YXR0cmlidXRlfTwvY29kZT4uIFRoZSBjb2xvbiBj YW4gYmUgYWx0ZXJlZCB1c2luZyA8Y29kZT5wYXJhbV9kZWxpbTwvY29kZT47IHRoaXMgaXMg c29tZXRpbWVzIG5lY2Vzc2FyeSBpZiB0aGUgdGFnIG5hbWUgaXRzZWxmIGNvbnRhaW5zIGEg Y29sb24gKGRlbGljaW91cy5jb20gZG9lcyB0aGlzKS48L3A+CgoJPHA+VGhlIDxjb2RlPntx dWFsaXR5fTwvY29kZT4gdGFnIGFwcGVhcnMgbW9yZSB0aGFuIG9uY2UgaW4gdGhlIGV4YW1w bGUgZG9jdW1lbnQgYWJvdmUuIFlvdSBjYW4gaW5mbHVlbmNlIGl0cyBvdXRwdXQgdXNpbmcg dGhlIDxjb2RlPmNvbmNhdDwvY29kZT4gYW5kIDxjb2RlPmNvbmNhdF9kZWxpbTwvY29kZT4g YXR0cmlidXRlcywgZS5nLiB1c2luZyA8Y29kZT5jb25jYXRfZGVsaW09JnF1b3Q7fCZxdW90 OzwvY29kZT4gd291bGQgcmVuZGVyIHRoZSBmb2xsb3dpbmcgcmVwbGFjZW1lbnQgdmFyaWFi bGUgb24gdGhlIGZpcnN0IHJlY29yZDo8L3A+CgoJPHVsPgoJCTxsaT48Y29kZT57cXVhbGl0 eX08L2NvZGU+IDogQ3VubmluZ3xEZXZpb3VzbmVzc3xQZXJzaXN0ZW5jZTwvbGk+Cgk8L3Vs PgoKCTxwPndoaWxlIDxjb2RlPmNvbmNhdD0mcXVvdDswJnF1b3Q7PC9jb2RlPiB3b3VsZCBy ZW5kZXIgdGhpczo8L3A+CgoJPHVsPgoJCTxsaT48Y29kZT57cXVhbGl0eX08L2NvZGU+IDog UGVyc2lzdGVuY2U8L2xpPgoJPC91bD4KCgk8cD5UaGVyZSBhcmUgYWxzbyBzb21lIHNwZWNp YWwgc3RhdGlzdGljYWwgdGFncyBhdmFpbGFibGUgaW4gZWFjaCByZWNvcmQ6PC9wPgoKCTx1 bD4KCQk8bGk+PGNvZGU+e3NtZF94bWxfdG90YWxyZWNzfTwvY29kZT4gOiB0aGUgdG90YWwg bnVtYmVyIG9mIHJlY29yZHMgZm91bmQgaW4geW91ciA8c3BhbiBjbGFzcz0iY2FwcyI+WE1M PC9zcGFuPiBkb2N1bWVudDwvbGk+CgkJPGxpPjxjb2RlPntzbWRfeG1sX3BhZ2VyZWNzfTwv Y29kZT4gOiB0aGUgbnVtYmVyIG9mIHJlY29yZHMgb24gdGhpcyBwYWdlIChpZiBub3QgdXNp bmcgcGFnaW5nLCB0aGlzIGlzIHRoZSBzYW1lIGFzIGFib3ZlKTwvbGk+CgkJPGxpPjxjb2Rl PntzbWRfeG1sX3BhZ2VzfTwvY29kZT4gOiB0aGUgbnVtYmVyIG9mIGF2YWlsYWJsZSBwYWdl czwvbGk+CgkJPGxpPjxjb2RlPntzbWRfeG1sX3RoaXNwYWdlfTwvY29kZT4gOiB0aGUgcGFn ZSBudW1iZXIgb2YgdGhlIGN1cnJlbnRseSB2aXNpYmxlIHBhZ2U8L2xpPgoJCTxsaT48Y29k ZT57c21kX3htbF90aGlzcmVjfTwvY29kZT4gOiB0aGUgcmVjb3JkIG51bWJlciwgc3RhcnRp bmcgYXQgMTwvbGk+CgkJPGxpPjxjb2RlPntzbWRfeG1sX3RoaXNpbmRleH08L2NvZGU+IDog dGhlIHJlY29yZCBudW1iZXIsIHN0YXJ0aW5nIGF0IDA8L2xpPgoJCTxsaT48Y29kZT57c21k X3htbF9ydW5yZWN9PC9jb2RlPiA6IHRoZSByZWNvcmQgbnVtYmVyLCBzdGFydGluZyBhdCAx IGFuZCBpbmNsdWRpbmcgYW55IG9mZnNldDwvbGk+CgkJPGxpPjxjb2RlPntzbWRfeG1sX3J1 bmluZGV4fTwvY29kZT4gOiB0aGUgcmVjb3JkIG51bWJlciwgc3RhcnRpbmcgYXQgMCBhbmQg aW5jbHVkaW5nIGFueSBvZmZzZXQ8L2xpPgoJPC91bD4KCgk8aDMgaWQ9InBncmVwcyI+UGFn aW5nIHJlcGxhY2VtZW50IHRhZ3M8L2gzPgoKCTxwPkluIHlvdXIgPGNvZGU+cGFnZWZvcm08 L2NvZGU+IHlvdSBjYW4gZW1wbG95IGFueSBvZiB0aGUgZm9sbG93aW5nIHJlcGxhY2VtZW50 IHRhZ3MgdG8gYnVpbGQgdXAgYSBuYXZpZ2F0aW9uIHN5c3RlbSBmb3Igc3RlcHBpbmcgdGhy b3VnaCB5b3VyIDxzcGFuIGNsYXNzPSJjYXBzIj5YTUw8L3NwYW4+IGRvY3VtZW50OjwvcD4K Cgk8dWw+CgkJPGxpPjxjb2RlPntzbWRfeG1sX3RvdGFscmVjc308L2NvZGU+IDogdGhlIHRv dGFsIG51bWJlciBvZiByZWNvcmRzIGZvdW5kIGluIHlvdXIgPHNwYW4gY2xhc3M9ImNhcHMi PlhNTDwvc3Bhbj4gZG9jdW1lbnQ8L2xpPgoJCTxsaT48Y29kZT57c21kX3htbF9wYWdlcmVj c308L2NvZGU+IDogdGhlIG51bWJlciBvZiByZWNvcmRzIG9uIHRoaXMgcGFnZTwvbGk+CgkJ PGxpPjxjb2RlPntzbWRfeG1sX3BhZ2VzfTwvY29kZT4gOiB0aGUgbnVtYmVyIG9mIGF2YWls YWJsZSBwYWdlczwvbGk+CgkJPGxpPjxjb2RlPntzbWRfeG1sX3ByZXZwYWdlfTwvY29kZT4g OiB0aGUgcGFnZSBudW1iZXIgb2YgdGhlIHByZXZpb3VzIHBhZ2UgJiM4MjEyOyBlbXB0eSBp ZiBvbiBmaXJzdCBwYWdlPC9saT4KCQk8bGk+PGNvZGU+e3NtZF94bWxfdGhpc3BhZ2V9PC9j b2RlPiA6IHRoZSBwYWdlIG51bWJlciBvZiB0aGUgY3VycmVudCBwYWdlPC9saT4KCQk8bGk+ PGNvZGU+e3NtZF94bWxfbmV4dHBhZ2V9PC9jb2RlPiA6IHRoZSBwYWdlIG51bWJlciBvZiB0 aGUgbmV4dCBwYWdlICYjODIxMjsgZW1wdHkgaWYgb24gbGFzdCBwYWdlPC9saT4KCQk8bGk+ PGNvZGU+e3NtZF94bWxfcmVjX3N0YXJ0fTwvY29kZT4gOiB0aGUgcmVjb3JkIG51bWJlciBv ZiB0aGUgZmlyc3QgcmVjb3JkIG9uIHRoaXMgcGFnZSAoY291bnRlZCBmcm9tIHRoZSBzdGFy dCBvZiB0aGUgcmVjb3JkIHNldCk8L2xpPgoJCTxsaT48Y29kZT57c21kX3htbF9yZWNfZW5k fTwvY29kZT4gOiB0aGUgcmVjb3JkIG51bWJlciBvZiB0aGUgbGFzdCByZWNvcmQgb24gdGhp cyBwYWdlIChjb3VudGVkIGZyb20gdGhlIHN0YXJ0IG9mIHRoZSByZWNvcmQgc2V0KTwvbGk+ CgkJPGxpPjxjb2RlPntzbWRfeG1sX3JlY3NfcHJldn08L2NvZGU+IDogdGhlIG51bWJlciBv ZiByZWNvcmRzIG9uIHRoZSBwcmV2aW91cyBwYWdlPC9saT4KCQk8bGk+PGNvZGU+e3NtZF94 bWxfcmVjc19uZXh0fTwvY29kZT4gOiB0aGUgbnVtYmVyIG9mIHJlY29yZHMgb24gdGhlIG5l eHQgcGFnZTwvbGk+CgkJPGxpPjxjb2RlPntzbWRfeG1sX3VuaXF1ZV9pZH08L2NvZGU+IDog dGhlIHVuaXF1ZSByZWZlcmVuY2UgbnVtYmVyIGFzc2lnbmVkIHRvIHRoaXMgc21kX3htbCB0 YWcgKHNlZSA8YSBocmVmPSIjZWc1Ij5leGFtcGxlIDU8L2E+IGZvciB1c2FnZSBvZiB0aGlz KTwvbGk+Cgk8L3VsPgoKCTxoMiBpZD0ic21kX3hpZiI+VXNhZ2U6IDxjb2RlPiZsdDt0eHA6 c21kX3htbF9pZl9wcmV2Jmd0OyAvICZsdDt0eHA6c21kX3htbF9pZl9uZXh0Jmd0OzwvY29k ZT48L2gyPgoKCTxwPlVzZSB0aGVzZSBjb250YWluZXIgdGFncyB0byBkZXRlcm1pbmUgaWYg dGhlcmUgaXMgYSBuZXh0IG9yIHByZXZpb3VzIHBhZ2UgYW5kIHRha2UgYWN0aW9uIGlmIHNv LiBDYW4gb25seSBiZSB1c2VkIGluc2lkZSA8Y29kZT5wYWdlZm9ybTwvY29kZT4sIHRodXMg YWxsIDxhIGhyZWY9IiNwZ3JlcHMiPnBhZ2luZyByZXBsYWNlbWVudCB2YXJpYWJsZXM8L2E+ IGFyZSBhdmFpbGFibGUgaW5zaWRlIHRoZXNlIHRhZ3MuPC9wPgoKPHByZSBjbGFzcz0iYmxv Y2siPjxjb2RlIGNsYXNzPSJibG9jayI+Jmx0O3R4cDpzbWRfeG1sX2lmX3ByZXYmZ3Q7UHJl dmlvdXMgcGFnZSZsdDsvdHhwOnNtZF94bWxfaWZfcHJldiZndDsKJmx0O3R4cDpzbWRfeG1s X2lmX25leHQmZ3Q7TmV4dCBwYWdlJmx0Oy90eHA6c21kX3htbF9pZl9uZXh0Jmd0Owo8L2Nv ZGU+PC9wcmU+CgoJPHA+VGhlIHRhZ3Mgc3VwcHJ0IDxjb2RlPiZsdDt0eHA6ZWxzZSAvJmd0 OzwvY29kZT5TZWUgPGEgaHJlZj0iI2VnNSI+ZXhhbXBsZSA1PC9hPiBmb3IgbW9yZS48L3A+ CgoJPGgyPkV4YW1wbGVzPC9oMj4KCgk8aDMgaWQ9ImVnMSI+RXhhbXBsZSAxOiBkZWxpY2lv dXMgbGlua3M8L2gzPgoKCTxwPlN3YXAgPGNvZGU+cm9hZHJ1bm5lcjwvY29kZT4gaW4gdGhp cyBjb2RlIHdpdGggeW91ciBkZWxpY2lvdXMgdXNlcm5hbWUgdG8gZ2V0IHlvdXIgb3duIGZl ZWQ6PC9wPgoKPHByZSBjbGFzcz0iYmxvY2siPjxjb2RlIGNsYXNzPSJibG9jayI+Jmx0O3R4 cDpzbWRfeG1sIGRhdGE9JnF1b3Q7aHR0cDovL2ZlZWRzLmRlbGljaW91cy5jb20vdjIvcnNz L3JvYWRydW5uZXImcXVvdDsKICAgICByZWNvcmQ9JnF1b3Q7aXRlbSZxdW90OyBmaWVsZHM9 JnF1b3Q7dGl0bGUsIGxpbmssIHB1YkRhdGUsIGRlc2NyaXB0aW9uJnF1b3Q7CiAgICAgd3Jh cHRhZz0mcXVvdDtkbCZxdW90OyZndDsKICAgJmx0O2R0Jmd0OyZsdDthIGhyZWY9JnF1b3Q7 e2xpbmt9JnF1b3Q7Jmd0O3t0aXRsZX0mbHQ7L2EmZ3Q7Jmx0Oy9kdCZndDsKICAgJmx0O2Rk Jmd0O1Bvc3RlZDoge3B1YkRhdGV9Jmx0O2JyIC8mZ3Q7e2Rlc2NyaXB0aW9ufSZsdDsvZGQm Z3Q7CiZsdDsvdHhwOnNtZF94bWwmZ3Q7CjwvY29kZT48L3ByZT4KCgk8aDMgaWQ9ImVnMiI+ RXhhbXBsZSAyOiB0d2l0dGVyIGZlZWQ8L2gzPgoKPHByZSBjbGFzcz0iYmxvY2siPjxjb2Rl IGNsYXNzPSJibG9jayI+Jmx0O3R4cDpzbWRfeG1sCiAgICAgZGF0YT0mcXVvdDtodHRwOi8v dHdpdHRlci5jb20vc3RhdHVzZXMvdXNlcl90aW1lbGluZS90ZXh0cGF0dGVybi54bWwmcXVv dDsKICAgICByZWNvcmQ9JnF1b3Q7c3RhdHVzJnF1b3Q7IGZpZWxkcz0mcXVvdDtpZCwgdGV4 dCwgY3JlYXRlZF9hdCZxdW90OyBza2lwPSZxdW90O3VzZXImcXVvdDsKICAgICB3cmFwdGFn PSZxdW90O3VsJnF1b3Q7IGxpbmtpZnk9JnF1b3Q7dGV4dCZxdW90OyZndDsKICAgJmx0O2xp Jmd0OwogICAgICAmbHQ7YSBocmVmPSZxdW90O2h0dHA6Ly90d2l0dGVyLmNvbS90ZXh0cGF0 dGVybi9zdGF0dXNlcy97aWR9JnF1b3Q7Jmd0OwogICAgICAgICB7Y3JlYXRlZF9hdH0KICAg ICAgJmx0Oy9hJmd0OwogICAgICAmbHQ7YnIgLyZndDt7dGV4dH0KICAgJmx0Oy9saSZndDsK Jmx0Oy90eHA6c21kX3htbCZndDsKPC9jb2RlPjwvcHJlPgoKCTxwPk5vdGljZSB0aGF0IHdl IDxjb2RlPnNraXA8L2NvZGU+IHRoZSB3aG9sZSA8ZW0+dXNlcjwvZW0+IGJsb2NrIGluIHRo ZSA8c3BhbiBjbGFzcz0iY2FwcyI+WE1MPC9zcGFuPiBkYXRhIHN0cmVhbS4gVGhpcyBpcyBm b3IgdHdvIHJlYXNvbnM6PC9wPgoKCTxvbD4KCQk8bGk+aXQgaXMgcmVkdW5kYW50IGluZm9y bWF0aW9uIHRoYXQgYXBwZWFycyBpbiBldmVyeSByZWNvcmQgJiM4MjEyOyB3ZSBhbHJlYWR5 IGtub3cgdG8gd2hpY2ggdXNlciB0aGUgZmVlZCBiZWxvbmdzIGJlY2F1c2UgdGhleXImIzgy MTc7ZSBhbGwgZnJvbSB0aGUgc2FtZSB1c2VyPC9saT4KCQk8bGk+PGVtPmNyZWF0ZWRfYXQ8 L2VtPiBpcyB1c2VkIGluc2lkZSB0aGUgdXNlciBibG9jayBhcyB3ZWxsIGFzIGluIHRoZSBv dXRlciBzdGF0dXMgYmxvY2sgc28gd2UgZ2V0IHR3byBkYXRlc3RhbXBzLCB3aGljaCBpcyBu b3Qgd2hhdCB3ZSB3YW50IChpZiB3ZSBzaW1wbHkgdXNlZCA8Y29kZT5jb25jYXQ9JnF1b3Q7 MCZxdW90OzwvY29kZT4gdG8gb25seSBncmFiIG9uZSBvZiB0aGUgY3JlYXRlZF9hdCBlbnRy aWVzLCB0aGUgbGFzdCBvbmUgd291bGQgcHJldmFpbCAmIzgyMTI7IHRoZSBvbmUgZnJvbSB0 aGUgdXNlciBibG9jayk8L2xpPgoJPC9vbD4KCgk8aDMgaWQ9ImVnMyI+RXhhbXBsZSAzOiBs aW1pdCBhbmQgcGFnaW5nPC9oMz4KCgk8cD5WaWV3aW5nIHRoZSBJIExvdmUgPHNwYW4gY2xh c3M9ImNhcHMiPlRYUDwvc3Bhbj4gZmVlZCAzIHJlY29yZHMgYXQgYSB0aW1lLiBOb3RlIHRo YXQgc2luY2UgdGhlIHNpdGUgaXMgbm90IHVwZGF0ZWQgZnJlcXVlbnRseSwgdGhlIGNhY2hl X3RpbWUgb2YgODY0MDAgc2Vjb25kcyAoMSBkYXkpIGlzIGFtcGxlIHRvIGF2b2lkIGhhbW1l cmluZyB0aGUgbmV0d29yazo8L3A+Cgo8cHJlIGNsYXNzPSJibG9jayI+PGNvZGUgY2xhc3M9 ImJsb2NrIj4mbHQ7dHhwOnNtZF94bWwKICAgICBkYXRhPSZxdW90O2h0dHA6Ly9mZWVkcy5m ZWVkYnVybmVyLmNvbS93ZWxvdmV0eHAmcXVvdDsKICAgICByZWNvcmQ9JnF1b3Q7aXRlbSZx dW90OyBmaWVsZHM9JnF1b3Q7dGl0bGUsZGVzY3JpcHRpb24sIGxpbmssIHB1YkRhdGUmcXVv dDsKICAgICB3cmFwdGFnPSZxdW90O3VsJnF1b3Q7IGxpbWl0PSZxdW90OzMmcXVvdDsgcGFn ZWZvcm09JnF1b3Q7cGFnZXImcXVvdDsKICAgICBjYWNoZV90aW1lPSZxdW90Ozg2NDAwJnF1 b3Q7Jmd0OwogICAmbHQ7bGkmZ3Q7CiAgICAgICZsdDthIGhyZWY9JnF1b3Q7e2xpbmt9JnF1 b3Q7Jmd0OwogICAgICAgICB7dGl0bGV9CiAgICAgICZsdDsvYSZndDsmbHQ7c3BhbiBjbGFz cz0mcXVvdDtwdWJsaXNoZWQmcXVvdDsmZ3Q7e3B1YkRhdGV9Jmx0Oy9zcGFuJmd0OwogICAg ICAmbHQ7YnIgLyZndDt7ZGVzY3JpcHRpb259CiAgICZsdDsvbGkmZ3Q7CiZsdDsvdHhwOnNt ZF94bWwmZ3Q7CjwvY29kZT48L3ByZT4KCgk8cD5BbmQgaW4gZm9ybSA8Y29kZT5wYWdlcjwv Y29kZT46PC9wPgoKPHByZSBjbGFzcz0iYmxvY2siPjxjb2RlIGNsYXNzPSJibG9jayI+UGFn ZSB7c21kX3htbF90aGlzcGFnZX0gb2Yge3NtZF94bWxfcGFnZXN9CiZsdDt0eHA6bmV3ZXIm Z3Q7UHJldmlvdXMgcGFnZSZsdDsvdHhwOm5ld2VyJmd0OwombHQ7dHhwOm9sZGVyJmd0O05l eHQgcGFnZSZsdDsvdHhwOm9sZGVyJmd0Owo8L2NvZGU+PC9wcmU+CgoJPHA+SWYgeW91IHdh bnRlZCB0byB2aWV3IHRoZSBsYXN0IHRocmVlIGVudHJpZXMgaW4gdGhlIGZlZWQgaW5zdGVh ZCBvZiB0aGUgZmlyc3QgdGhyZWUsIHlvdSBjb3VsZCBzZXQgPGNvZGU+b2Zmc2V0PSZxdW90 Oy0zJnF1b3Q7PC9jb2RlPi48L3A+CgoJPGgzIGlkPSJlZzQiPkV4YW1wbGUgNDogdXNpbmcg PGNvZGU+cGFnZXZhcjwvY29kZT48L2gzPgoKCTxwPkFkZGluZyA8Y29kZT5wYWdldmFyPSZx dW90O3htbHBnJnF1b3Q7PC9jb2RlPiB0byBleGFtcGxlIDMgYWxsb3dzIHBhZ2luZyBpbmRl cGVuZGVudGx5IG9mIHR4cDpvbGRlciBhbmQgdHhwOm5ld2VyIHRhZ3MuIFlvdSB0aGVuIG5l ZWQgdG8gYnVpbGQgeW91ciBvd24gbGlua3MgaW4geW91ciA8Y29kZT5wYWdlcjwvY29kZT4g Zm9ybSwgbGlrZSB0aGlzOjwvcD4KCjxwcmUgY2xhc3M9ImJsb2NrIj48Y29kZSBjbGFzcz0i YmxvY2siPlBhZ2Uge3NtZF94bWxfdGhpc3BhZ2V9IG9mIHtzbWRfeG1sX3BhZ2VzfSB8CiAg IFNob3dpbmcgcmVjb3JkcyB7c21kX3htbF9yZWNfc3RhcnR9IHRvIHtzbWRfeG1sX3JlY19l bmR9CiAgIG9mIHtzbWRfeG1sX3RvdGFscmVjc30gfAogICZsdDthIGhyZWY9JnF1b3Q7P3ht bHBnPXtzbWRfeG1sX3ByZXZwYWdlfSZxdW90OyZndDtQcmV2aW91cyB7c21kX3htbF9yZWNz X3ByZXZ9Jmx0Oy9hJmd0OwogICZsdDthIGhyZWY9JnF1b3Q7P3htbHBnPXtzbWRfeG1sX25l eHRwYWdlfSZxdW90OyZndDtOZXh0IHtzbWRfeG1sX3JlY3NfbmV4dH0mbHQ7L2EmZ3Q7Cjwv Y29kZT48L3ByZT4KCgk8cD5UaGF0IGNyZWF0ZXMgbGlua3MgdG8gbmV4dCBhbmQgcHJldmlv dXMgcmVjb3JkIHNldHMgdXNpbmcgdGhlIGFzc2lnbmVkIDxjb2RlPnBhZ2V2YXI8L2NvZGU+ IGFzIHRoZSA8c3BhbiBjbGFzcz0iY2FwcyI+VVJMPC9zcGFuPiBwYXJhbWV0ZXIuPC9wPgoK CTxoMyBpZD0iZWc1Ij5FeGFtcGxlIDU6IGNvbmRpdGlvbmFsIG5hdmlnYXRpb24gYW5kIHRo ZSB1bmlxdWUgSUQ8L2gzPgoKCTxwPkFnYWluIHVzaW5nIGV4YW1wbGUgMywgaWYgeW91IHVz ZWQgPGNvZGU+cGFnZXZhcj0mcXVvdDtTTURfWE1MX1VOSVFVRV9JRCZxdW90OzwvY29kZT4g dGhlIHBhZ2V2YXIgd291bGQgYmUgYXNzaWduZWQgdGhlIHZhbHVlIDxjb2RlPmYyOTBiODwv Y29kZT4uIEluIHRoaXMgY2FzZSB3ZSBjb3VsZCB1c2UgaXQgbGlrZSB0aGlzOjwvcD4KCjxw cmUgY2xhc3M9ImJsb2NrIj48Y29kZSBjbGFzcz0iYmxvY2siPlBhZ2Uge3NtZF94bWxfdGhp c3BhZ2V9IG9mIHtzbWRfeG1sX3BhZ2VzfSB8CiAgIFNob3dpbmcgcmVjb3JkcyB7c21kX3ht bF9yZWNfc3RhcnR9IHRvIHtzbWRfeG1sX3JlY19lbmR9CiAgIG9mIHtzbWRfeG1sX3RvdGFs cmVjc30gfAombHQ7dHhwOnNtZF94bWxfaWZfcHJldiZndDsKICAmbHQ7YSBocmVmPSZxdW90 Oz97c21kX3htbF91bmlxdWVfaWR9PXtzbWRfeG1sX3ByZXZwYWdlfSZxdW90OyZndDtQcmV2 aW91cyB7c21kX3htbF9yZWNzX3ByZXZ9Jmx0Oy9hJmd0OwombHQ7L3R4cDpzbWRfeG1sX2lm X3ByZXYmZ3Q7CiZsdDt0eHA6c21kX3htbF9pZl9uZXh0Jmd0OwogICZsdDthIGhyZWY9JnF1 b3Q7P3tzbWRfeG1sX3VuaXF1ZV9pZH09e3NtZF94bWxfbmV4dHBhZ2V9JnF1b3Q7Jmd0O05l eHQge3NtZF94bWxfcmVjc19uZXh0fSZsdDsvYSZndDsKJmx0Oy90eHA6c21kX3htbF9pZl9u ZXh0Jmd0Owo8L2NvZGU+PC9wcmU+CgoJPHA+Tm90ZSB0aGF0IHdlIGFyZSB1c2luZyB0aGUg Y29uZGl0aW9uYWwgdGFncyB0byBvbmx5IGRpc3BsYXkgdGhlIG5leHQgYW5kIHByZXZpb3Vz IGxpbmtzIGlmIHRoZSBuZXh0L3ByZXYgcGFnZSBleGlzdHMgYW5kIGFsc28gdGhhdCB0aGUg PHNwYW4gY2xhc3M9ImNhcHMiPlVSTDwvc3Bhbj4gbGluayBpcyBnZW5lcmF0ZWQgdXNpbmcg PGNvZGU+e3NtZF94bWxfdW5pcXVlX2lkfTwvY29kZT4uIFlvdSBjb3VsZCBjb25jZWl2YWJs eSB1c2UgdGhpcyBzYW1lIHBhZ2Vmb3JtIG9uIG1vcmUgdGhhbiBvbmUgPHNwYW4gY2xhc3M9 ImNhcHMiPlhNTDwvc3Bhbj4gZmVlZCBvbiB0aGUgc2FtZSBwYWdlIGFuZCBuYXZpZ2F0ZSB0 aGUgdHdvIGZlZWRzIGluZHBlbmVkZW50bHksIHRob3VnaCB5b3Ugd291bGQgaGF2ZSB0byB3 b3JrIG91dCBhIGNsZXZlciB3YXkgb2YgYW1hbGdhbWF0aW5nIHRoZSA8c3BhbiBjbGFzcz0i Y2FwcyI+VVJMPC9zcGFuPiB2YXJzIChwZXJoYXBzIHVzaW5nIHRoZSBhZGlfZ3BzIHBsdWdp bikuPC9wPgoKCTxoMiBjbGFzcz0iY2hhbmdlbG9nIj5DaGFuZ2Vsb2c8L2gyPgoKCTx1bD4K CQk8bGk+MDIgSmFuIDEwIHwgMC4xIHwgSW5pdGlhbCByZWxlYXNlPC9saT4KCQk8bGk+MDMg SmFuIDEwIHwgMC4yIHwgQWRkZWQgY2FjaGUgc3VwcG9ydCAodGhhbmtzIHZhcmlhYXMpIDsg YWRkZWQgPGNvZGU+bGltaXQ8L2NvZGU+LCA8Y29kZT5vZmZzZXQ8L2NvZGU+IGFuZCBwYWdp bmcgZmVhdHVyZXMgOyBhZGRlZCA8Y29kZT5saW5raWZ5PC9jb2RlPiAodGhhbmtzIEphcm8p PC9saT4KCQk8bGk+MDUgSmFuIDEwIHwgMC4yMSB8IFN1cHBvcnRzIGh0dHBzOi8vIGZlZWRz ICh0aGFua3MgcGhvdG9ub21hZCkgOyBhZGRlZCA8Y29kZT50cmFuc3BvcnQ8L2NvZGU+LCA8 Y29kZT5kZWZhdWx0czwvY29kZT4gYW5kIDxjb2RlPnNldF9lbXB0eTwvY29kZT4gYXR0cmli dXRlczwvbGk+CgkJPGxpPjEzIEphbiAxMCB8IDAuMjIgfCBBZGRlZCA8Y29kZT5saW5lX2xl bmd0aDwvY29kZT4gKHRoYW5rcyBuYXJkbyk8L2xpPgoJPC91bD4KCjwvZGl2Pgo8IS0tICoq KiBCRUdJTiBQTFVHSU4gQ1NTICoqKiAtLT4KPHN0eWxlIHR5cGU9InRleHQvY3NzIj4KI3Nt ZF9oZWxwIHsgbGluZS1oZWlnaHQ6MS41IDt9CiNzbWRfaGVscCBjb2RlIHsgZm9udC13ZWln aHQ6Ym9sZDsgZm9udDogMTA1JS8xMzAlICJDb3VyaWVyIE5ldyIsIGNvdXJpZXIsIG1vbm9z cGFjZTsgYmFja2dyb3VuZC1jb2xvcjogI0ZGRkZDQzt9CiNzbWRfaGVscCBjb2RlLmJsb2Nr IHsgZm9udC13ZWlnaHQ6bm9ybWFsOyBib3JkZXI6MXB4IGRvdHRlZCAjOTk5OyBiYWNrZ3Jv dW5kLWNvbG9yOiAjZjBlNjhjOyBkaXNwbGF5OmJsb2NrOyBtYXJnaW46MTBweCAxMHB4IDIw cHg7IHBhZGRpbmc6MTBweDsgfQojc21kX2hlbHAgYTpsaW5rLCAjc21kX2hlbHAgYTp2aXNp dGVkIHsgY29sb3I6ICMwMGM7IHRleHQtZGVjb3JhdGlvbjogbm9uZTsgYm9yZGVyLWJvdHRv bTogMXB4IHNvbGlkIGJsdWU7IHBhZGRpbmctYm90dG9tOjFweDt9CiNzbWRfaGVscCBhOmhv dmVyLCAjc21kX2hlbHAgYTphY3RpdmUgeyBjb2xvcjogYmx1ZTsgdGV4dC1kZWNvcmF0aW9u OiBub25lOyBib3JkZXItYm90dG9tOiAycHggc29saWQgYmx1ZTsgcGFkZGluZy1ib3R0b206 MXB4O30KI3NtZF9oZWxwIGgxIHsgY29sb3I6ICMzNjk7IGZvbnQ6IDIwcHggR2VvcmdpYSwg c2Fucy1zZXJpZjsgbWFyZ2luOiAwOyB0ZXh0LWFsaWduOiBjZW50ZXI7IH0KI3NtZF9oZWxw IGgyIHsgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkIGJsYWNrOyBwYWRkaW5nOjEwcHggMCAw OyBjb2xvcjogIzM2OTsgZm9udDogMTdweCBHZW9yZ2lhLCBzYW5zLXNlcmlmOyB9CiNzbWRf aGVscCBoMyB7IGNvbG9yOiAjMDc5OyBmb250OiBib2xkIDEycHggQXJpYWwsIHNhbnMtc2Vy aWY7IGxldHRlci1zcGFjaW5nOiAxcHg7IG1hcmdpbjogMTBweCAwIDA7dGV4dC10cmFuc2Zv cm06IHVwcGVyY2FzZTsgdGV4dC1kZWNvcmF0aW9uOnVuZGVybGluZTt9CiNzbWRfaGVscCBo NCB7IGZvbnQ6IGJvbGQgMTFweCBBcmlhbCwgc2Fucy1zZXJpZjsgbGV0dGVyLXNwYWNpbmc6 IDFweDsgbWFyZ2luOiAxMHB4IDAgMCA7dGV4dC10cmFuc2Zvcm06IHVwcGVyY2FzZTsgfQoj c21kX2hlbHAgLmF0bm0geyBmb250LXdlaWdodDpib2xkOyBjb2xvcjojMzNkOyB9CiNzbWRf aGVscCAubWFuZCB7IGJhY2tncm91bmQ6I2VlZTsgYm9yZGVyOjFweCBkb3R0ZWQgIzk5OTsg fQojc21kX2hlbHAgdGFibGUge3dpZHRoOjkwJTsgdGV4dC1hbGlnbjpjZW50ZXI7IHBhZGRp bmctYm90dG9tOjFlbTt9CiNzbWRfaGVscCB0ZCwgI3NtZF9oZWxwIHRoIHtib3JkZXI6MXB4 IHNvbGlkICM5OTk7IHBhZGRpbmc6LjVlbSAwO30KI3NtZF9oZWxwIHVsIHsgbGlzdC1zdHls ZS10eXBlOnNxdWFyZTsgfQojc21kX2hlbHAgLnJlcXVpcmVkIHtjb2xvcjpyZWQ7fQojc21k X2hlbHAgbGkgeyBtYXJnaW46NXB4IDIwcHggNXB4IDMwcHg7IH0KI3NtZF9oZWxwIC5icmVh ayB7IG1hcmdpbi10b3A6NXB4OyB9Cjwvc3R5bGU+CjwhLS0gKioqIEVORCBQTFVHSU4gQ1NT ICoqKiAtLT4KIjtzOjM6Im1kNSI7czozMjoiZTBiOWE2NzdlZTE5Njg1ZDVlYzkxYjI3ZGZm MzYxZWMiO30=