# Name: smd_xml v0.3 # 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 LyI7czo3OiJ2ZXJzaW9uIjtzOjM6IjAuMyI7czoxMToiZGVzY3JpcHRpb24iO3M6NDE6IkV4 dHJhY3QgYW55IFhNTC9mZWVkIGluZm8gYW5kIHJlZm9ybWF0IGl0IjtzOjQ6ImNvZGUiO3M6 MjA1NzA6ImZ1bmN0aW9uIHNtZF94bWwoJGF0dHMsICR0aGluZz1OVUxMKSB7DQoJZ2xvYmFs ICRwcmV0ZXh0LCAkdGhpc3BhZ2UsICRzbWRfeG1sX3BnaW5mbzsNCg0KCWV4dHJhY3QobEF0 dHMoYXJyYXkoDQoJCSdkYXRhJyA9PiAnJywNCgkJJ3JlY29yZCcgPT4gJycsDQoJCSdmaWVs ZHMnID0+ICcnLA0KCQknc2tpcCcgPT4gJycsDQoJCSd1cHBlcmNhc2UnID0+ICcwJywNCgkJ J2NvbnZlcnQnID0+ICcnLCAvLyBzZWFyY2g6cmVwbGFjZSwgc2VhcmNoOnJlcGxhY2UsIC4u Lg0KCQkndGFyZ2V0X2VuYycgPT4gJ1VURi04JywNCgkJJ2RlZmF1bHRzJyA9PiAnJywNCgkJ J3NldF9lbXB0eScgPT4gJzAnLA0KCQknZm9ybWF0JyA9PiAnJywNCgkJJ2Zvcm0nID0+ICcn LA0KCQknbGltaXQnID0+IDAsDQoJCSdvZmZzZXQnID0+IDAsDQoJCSdsaW5raWZ5JyA9PiAn JywgLy8gRGVwcmVjYXRlZDogdXNlIGZvcm1hdD0iZmllbGR8bGluayIgaW5zdGVhZA0KCQkn cGFnZWZvcm0nID0+ICcnLA0KCQkncGFnZXZhcicgPT4gJ3BnJywNCgkJJ3BhZ2Vwb3MnID0+ ICdiZWxvdycsDQoJCSd3cmFwdGFnJyA9PiAnJywNCgkJJ2JyZWFrJyA9PiAnJywNCgkJJ2Ns YXNzJyA9PiAnJywNCgkJJ2RlbGltJyA9PiAnLCcsDQoJCSdwYXJhbV9kZWxpbScgPT4gJ3wn LA0KCQknY29uY2F0X2RlbGltJyA9PiAnICcsDQoJCSdjb25jYXQnID0+ICcxJywNCgkJJ2Nh Y2hlX3RpbWUnID0+ICcwJywgLy8gaW4gc2Vjb25kcw0KCQknaGFzaHNpemUnID0+ICc2OjUn LA0KCQknbGluZV9sZW5ndGgnID0+ICc4MTkyJywNCgkJJ3RyYW5zcG9ydCcgPT4gJycsDQoJ CSdkZWJ1ZycgPT4gJzAnLA0KCSksICRhdHRzKSk7DQoNCgkkc3JjID0gJyc7DQoJJHRoaW5n ID0gKGVtcHR5KCRmb3JtKSkgPyAkdGhpbmcgOiBmZXRjaF9mb3JtKCRmb3JtKTsNCg0KCWlm ICgkbGlua2lmeSkgew0KCQl0cmlnZ2VyX2Vycm9yKCJsaW5raWZ5IGF0dHJpYnV0ZSBkZXBy ZWNhdGVkOiB1c2UgZm9ybWF0PVwiZmllbGR8bGlua1wiIGluc3RlYWQiLCBFX1VTRVJfTk9U SUNFKTsNCgl9DQoNCglpZiAoZW1wdHkoJGRhdGEpKSB7DQoJCXRyaWdnZXJfZXJyb3IoInNt ZF94bWwgcmVxdWlyZXMgYSBkYXRhIHNvdXJjZSIpOw0KCX0NCglpZiAoZW1wdHkoJHJlY29y ZCkpIHsNCgkJdHJpZ2dlcl9lcnJvcigic21kX3htbCByZXF1aXJlcyBhIHJlY29yZCBuYW1l IHdpdGhpbiB5b3VyIGRhdGEgc3RyZWFtIik7DQoJfQ0KCWlmIChlbXB0eSgkZmllbGRzKSkg ew0KCQl0cmlnZ2VyX2Vycm9yKCJzbWRfeG1sIHJlcXVpcmVzIGEgbGlzdCBvZiBmaWVsZHMg dG8gZXh0cmFjdCBmcm9tIHdpdGhpbiB5b3VyIHJlY29yZHMiKTsNCgl9DQoNCgkkcGFnZWJp dCA9ICRyb3dpbmZvID0gYXJyYXkoKTsNCglpZiAoJHBhZ2Vmb3JtKSB7DQoJCSRwYWdlUG9z QWxsb3dlZCA9IGFycmF5KCJiZWxvdyIsICJhYm92ZSIpOw0KCQkkcGFnZWZvcm0gPSBmZXRj aF9mb3JtKCRwYWdlZm9ybSk7DQoJCSRwYWdlcG9zID0gc3RyX3JlcGxhY2UoJ3NtZF8nLCAn JywgJHBhZ2Vwb3MpOyAvLyBGb3IgY29udmVuaWVuY2UNCgkJJHBhZ2Vwb3MgPSBkb19saXN0 KCRwYWdlcG9zLCAkZGVsaW0pOw0KCQlmb3JlYWNoICgkcGFnZXBvcyBhcyAkcGFnZWl0ZW0p IHsNCgkJCSRwYWdlYml0W10gPSAoaW5fYXJyYXkoJHBhZ2VpdGVtLCAkcGFnZVBvc0FsbG93 ZWQpKSA/ICRwYWdlaXRlbSA6ICRwYWdlUG9zQWxsb3dlZFswXTsNCgkJfQ0KCX0NCg0KCSR0 YXJnZXRfZW5jID0gKGluX2FycmF5KCR0YXJnZXRfZW5jLCBhcnJheSgnSVNPLTg4NTktMScs ICdVUy1BU0NJSScsICdVVEYtOCcpKSkgPyAkdGFyZ2V0X2VuYyA6ICdVVEYtOCc7DQoNCgkv LyBNYWtlIGEgdW5pcXVlIGhhc2ggdmFsdWUgZm9yIHRoaXMgaW5zdGFuY2Ugc28gdGhlIFhN TCBkb2N1bWVudCBjYW4gYmUgY2FjaGVkIGluIHR4cF9wcmVmcw0KCSR1bmlxID0gJyc7DQoJ JG1kNSA9IG1kNSgkZGF0YS4kcmVjb3JkLiRmaWVsZHMpOw0KCWxpc3QoJGhhc2hMZW4sICRo YXNoU2tpcCkgPSBleHBsb2RlKCc6JywgJGhhc2hzaXplKTsNCglmb3IgKCRpZHggPSAwLCAk Y250ID0gMDsgJGNudCA8ICRoYXNoTGVuOyAkY250KyssICRpZHggPSAoKCRpZHgrJGhhc2hT a2lwKSAlIHN0cmxlbigkbWQ1KSkpIHsNCgkJJHVuaXEgLj0gJG1kNVskaWR4XTsNCgl9DQoN CgkkdmFyX2xhc3Rtb2QgPSAnc21kX3htbF9sbW9kXycuJHVuaXE7DQoJJHZhcl9kYXRhID0g J3NtZF94bWxfZGF0YV8nLiR1bmlxOw0KCSRsYXN0bW9kID0gZ2V0X3ByZWYoJHZhcl9sYXN0 bW9kLCAwKTsNCgkkcmVhZF9jYWNoZSA9ICgoJGNhY2hlX3RpbWUgPiAwKSAmJiAoKHRpbWUo KSAtICRsYXN0bW9kKSA8ICRjYWNoZV90aW1lKSkgPyB0cnVlIDogZmFsc2U7DQoJJHJlYWRf Y2FjaGUgPSBncHMoJ2ZvcmNlX3JlYWQnKSA/IGZhbHNlIDogJHJlYWRfY2FjaGU7IC8vIE92 ZXJyaWRlIGNhY2hlX3RpbWUNCgkkY3J1c2ggPSBmdW5jdGlvbl9leGlzdHMoJ2d6Y29tcHJl c3MnKSAmJiBmdW5jdGlvbl9leGlzdHMoJ2d6dW5jb21wcmVzcycpOw0KCSRwYWdldmFyID0g KCRwYWdldmFyID09ICdTTURfWE1MX1VOSVFVRV9JRCcpID8gJHVuaXEgOiAkcGFnZXZhcjsN Cg0KCS8vIENhY2hlZCBkb2N1bWVudCBpcyBnemlwcGVkIGFuZCB0aGVuICh5dWshKSBiYXNl NjQnZCBpZiB6bGliIGlzIGNvbXBpbGVkIGluLg0KCS8vIFdvdWxkIHByZWZlciB0byBzdG9y ZSBiaW5hcnkgZGF0YSBkaXJlY3RseSBidXQgdHJ5aW5nIHRvIGluc2VydCBpdCBpbnRvIGEg dHhwX3ByZWZzDQoJLy8gdGV4dCBmaWVsZCBhbHdheXMgZ2F2ZSBwcm9ibGVtcyBvbiBpbnNl cnRpb24gYW5kL29yIHJldHJpZXZhbA0KCWlmICgkcmVhZF9jYWNoZSkgew0KCQlpZiAoJGRl YnVnID4gMSkgew0KCQkJZG1wICgnKysgUkVBRElORyBDQUNIRSAnLiR2YXJfZGF0YS4nICsr Jyk7DQoJCX0NCgkJJHNyYyA9ICRjcnVzaCA/IGd6dW5jb21wcmVzcyhiYXNlNjRfZGVjb2Rl KGdldF9wcmVmKCR2YXJfZGF0YSkpKSA6IGdldF9wcmVmKCR2YXJfZGF0YSk7DQoJfSBlbHNl IHsNCgkJaWYgKChzdHJwb3MoJGRhdGEsICdodHRwOicpID09PSAwKSB8fCAoc3RycG9zKCRk YXRhLCAnaHR0cHM6JykgPT09IDApKSB7DQoJCQkvLyBUaGUgZGF0YSBpcyB0byBiZSBmZXRj aGVkIGZyb20gYSBVUkwNCgkJCWlmICghJHRyYW5zcG9ydCkgew0KCQkJCWlmKCBpc19jYWxs YWJsZSgnZnNvY2tvcGVuJykgKQ0KCQkJCQkkdHJhbnNwb3J0ID0gJ2Zzb2NrJzsNCgkJCQll bHNlaWYoIGlzX2NhbGxhYmxlKCdjdXJsX2luaXQnKSApIHsNCgkJCQkJJHRyYW5zcG9ydCA9 ICdjdXJsJzsNCgkJCQl9IGVsc2Ugew0KCQkJCQkkdHJhbnNwb3J0ID0gJyc7DQoJCQkJfQ0K CQkJfQ0KDQoJCQlzd2l0Y2ggKCR0cmFuc3BvcnQpIHsNCgkJCQljYXNlICdjdXJsJzoNCgkJ CQkJJGMgPSBjdXJsX2luaXQoKTsNCgkJCQkJY3VybF9zZXRvcHQoJGMsIENVUkxPUFRfVVJM LCAkZGF0YSk7DQoJCQkJCWN1cmxfc2V0b3B0KCRjLCBDVVJMT1BUX1JFRkVSRVIsIGh1KTsN CgkJCQkJY3VybF9zZXRvcHQoJGMsIENVUkxPUFRfUkVUVVJOVFJBTlNGRVIsIHRydWUpOw0K CQkJCQljdXJsX3NldG9wdCgkYywgQ1VSTE9QVF9WRVJCT1NFLCBmYWxzZSk7DQoJCQkJCWN1 cmxfc2V0b3B0KCRjLCBDVVJMT1BUX1RJTUVPVVQsIDEwKTsNCgkJCQkJJHNyYyA9IGN1cmxf ZXhlYygkYyk7DQoJCQkJCWJyZWFrOw0KCQkJCWNhc2UgJ2Zzb2NrJzoNCgkJCQkJJHVybCA9 IHBhcnNlX3VybCgkZGF0YSk7DQoJCQkJCXN3aXRjaCAoJHVybFsnc2NoZW1lJ10pIHsNCgkJ CQkJCWNhc2UgJ2h0dHBzJzoNCgkJCQkJCQkkdXJsWydzY2hlbWUnXSA9ICdzc2w6Ly8nOw0K CQkJCQkJCSR1cmxbJ3BvcnQnXSA9IDQ0MzsNCgkJCQkJCQlicmVhazsNCgkJCQkJCWNhc2Ug J2h0dHAnOg0KCQkJCQkJZGVmYXVsdDoNCgkJCQkJCQkkdXJsWydzY2hlbWUnXSA9ICcnOw0K CQkJCQkJCSR1cmxbJ3BvcnQnXSA9IDgwOw0KCQkJCQl9DQoJCQkJCSRmcCA9IGZzb2Nrb3Bl biAoJHVybFsnc2NoZW1lJ10gLiAkdXJsWydob3N0J10sICR1cmxbJ3BvcnQnXSwgJGVycm5v LCAkZXJyc3RyLCAxMCk7DQoNCgkJCQkJJHFyeSA9ICdHRVQgJy4kdXJsWydwYXRoJ10gLiAo KGlzc2V0KCR1cmxbJ3F1ZXJ5J10pKSA/ICc/Jy4kdXJsWydxdWVyeSddOiAnJyk7DQoJCQkJ CSRxcnkgLj0gIiBIVFRQLzEuMFxyXG4iOw0KCQkJCQkkcXJ5IC49ICJIb3N0OiAiLiR1cmxb J2hvc3QnXS4iXHJcbiI7DQoJCQkJCSRxcnkgLj0gIlVzZXItQWdlbnQ6IE1vemlsbGEvNS4w IChXaW5kb3dzOyBVOyBXaW5kb3dzIE5UIDUuMTsgZW4tR0I7IHJ2OjEuOS4xLjYpIEdlY2tv LzIwMDkxMjAxIEZpcmVmb3gvMy41LjZcclxuXHJcbiI7IC8vICpzaHJ1ZyoNCg0KCQkJCQlm cHV0cygkZnAsICRxcnkpOw0KCQkJCQlzdHJlYW1fc2V0X3RpbWVvdXQoJGZwLCAxMCk7DQoJ CQkJCSRpbmZvID0gc3RyZWFtX2dldF9tZXRhX2RhdGEoJGZwKTsNCg0KCQkJCQkkaGRycyA9 IHRydWU7DQoJCQkJCXdoaWxlICgoIWZlb2YoJGZwKSkgJiYgKCEkaW5mb1sndGltZWRfb3V0 J10pKSB7DQoJCQkJCQkkbGluZSA9IGZnZXRzKCRmcCwgJGxpbmVfbGVuZ3RoKTsNCgkJCQkJ CSRsaW5lID0gcHJlZ19yZXBsYWNlKCJbXHJcbl0iLCAiIiwgJGxpbmUpOw0KCQkJCQkJaWYg KCRoZHJzID09IGZhbHNlKSB7DQoJCQkJCQkJJHNyYyAuPSAkbGluZS4iXG4iOw0KCQkJCQkJ fQ0KCQkJCQkJaWYgKHN0cmxlbigkbGluZSkgPT0gMCkgJGhkcnMgPSBmYWxzZTsNCgkJCQkJ fQ0KCQkJCQlpZiAoJGluZm9bJ3RpbWVkX291dCddKSB7DQoJCQkJCQkkc3JjID0gJyc7DQoJ CQkJCX0NCgkJCQkJZmNsb3NlKCRmcCk7DQoJCQkJCWJyZWFrOw0KCQkJCWRlZmF1bHQ6DQoJ CQkJCSRzcmMgPSAnJzsNCgkJCX0NCgkJfSBlbHNlICB7DQoJCQkvLyBBc3N1bWUgZGF0YSBp cyBwcmVzZW50ZWQgaW4gcmF3IFhNTA0KCQkJJHNyYyA9ICRkYXRhOw0KCQl9DQoJfQ0KDQoJ Ly8gU3RvcmUgdGhlIGN1cnJlbnQgZG9jdW1lbnQgaW4gdGhlIGNhY2hlIGFuZCBkYXRlc3Rh bXAgaXQNCglpZiAoJGNhY2hlX3RpbWUgPiAwICYmICEkcmVhZF9jYWNoZSkgew0KCQlpZiAo JGRlYnVnID4gMSkgew0KCQkJZG1wKCcrKyBEQVRBIENBQ0hFRCB0byAnLiR2YXJfZGF0YS4n ICsrJyk7DQoJCX0NCgkJJHNyY2luZm8gPSAkY3J1c2ggPyBiYXNlNjRfZW5jb2RlKGd6Y29t cHJlc3MoJHNyYykpIDogZG9TbGFzaCgkc3JjKTsNCgkJc2V0X3ByZWYoJHZhcl9sYXN0bW9k LCB0aW1lKCksICdzbWRfeG1sJywgUFJFRl9ISURERU4sICd0ZXh0X2lucHV0Jyk7DQoJCXNl dF9wcmVmKCR2YXJfZGF0YSwgJHNyY2luZm8sICdzbWRfeG1sJywgUFJFRl9ISURERU4sICd0 ZXh0X2lucHV0Jyk7DQoJfQ0KDQoJLy8gTWFrZSB1cCBhIHJlcGxhY2VtZW50IGFycmF5IGZv ciBkZWNvZGVkIGVudGl0aWVzLi4uDQoJJGNvbnZlcnNpb25zID0gYXJyYXkoKTsNCgkkY29u dmVydCA9IGRvX2xpc3QoJGNvbnZlcnQsICRkZWxpbSk7DQoJZm9yZWFjaCAoJGNvbnZlcnQg YXMgJHBhaXIpIHsNCgkJaWYgKGVtcHR5KCRwYWlyKSkgY29udGludWU7DQoNCgkJJHBhaXIg PSBkb19saXN0KCRwYWlyLCAkcGFyYW1fZGVsaW0pOw0KCQkkY29udmVyc2lvbnNbJHBhaXJb MF1dID0gJHBhaXJbMV07DQoJfQ0KDQoJaWYgKCRkZWJ1ZyA+IDEpIHsNCgkJZWNobyAiKysg Q09OVkVSU0lPTlMgKysiOw0KCQlkbXAoJGNvbnZlcnNpb25zKTsNCgl9DQoNCgkvLyAuLi4g YW5kIHJlcGxhY2UgdGhlbQ0KCSRzcmMgPSBzdHJ0cigkc3JjLCAkY29udmVyc2lvbnMpOw0K DQoJaWYgKCRkZWJ1ZyA+IDIpIHsNCgkJZWNobyAiKysgRklMVEVSRUQgU09VUkNFIERBVEEg KysiOw0KCQlkbXAoJHNyYyk7DQoJfQ0KDQoJLy8gU2V0IHVwIGFueSBkZWZhdWx0cw0KCSRk ZWZhdWx0cyA9IGRvX2xpc3QoJGRlZmF1bHRzLCAkZGVsaW0pOw0KCSRkZmx0cyA9IGFycmF5 KCk7DQoJZm9yZWFjaCAoJGRlZmF1bHRzIGFzICRkZmx0KSB7DQoJCWlmICgkZGZsdCA9PSAn JykgY29udGludWU7DQoJCSRwYXJ0cyA9IGV4cGxvZGUoJHBhcmFtX2RlbGltLCAkZGZsdCk7 DQoJCSRkZmx0c1skcGFydHNbMF1dID0gJHBhcnRzWzFdOw0KCX0NCgkkZGVmYXVsdHMgPSAk ZGZsdHM7DQoNCgkvLyBTZXQgdXAgYW55IGZvcm1hdHRpbmcNCgkkZm9ybWF0ID0gZG9fbGlz dCgkZm9ybWF0LCAkZGVsaW0pOw0KCSRmb3JtYXRzID0gYXJyYXkoKTsNCglmb3JlYWNoICgk Zm9ybWF0IGFzICRmcm1kZWYpIHsNCgkJaWYgKCRmcm1kZWYgPT0gJycpIGNvbnRpbnVlOw0K CQkkcGFydHMgPSBleHBsb2RlKCRwYXJhbV9kZWxpbSwgJGZybWRlZik7DQoJCSRmb3JtYXRz Wyd0eXBlJ11bJHBhcnRzWzBdXSA9ICRwYXJ0c1sxXTsNCgkJZm9yKCRpZHggPSAwOyAkaWR4 IDwgY291bnQoJHBhcnRzKS0yOyAkaWR4KyspIHsNCgkJCSRmb3JtYXRzWydkYXRhJ11bJHBh cnRzWzBdXVtdID0gJHBhcnRzWyRpZHgrMl07DQoJCX0NCgl9DQoNCglpZiAoJGRlYnVnID4g MSkgew0KCQlpZiAoJGRlZmF1bHRzKSB7DQoJCQllY2hvICIrKyBERUZBVUxUUyArKyI7DQoJ CQlkbXAoJGRlZmF1bHRzKTsNCgkJfQ0KCQlpZiAoJGZvcm1hdHMpIHsNCgkJCWVjaG8gIisr IEZPUk1BVFMgKysiOw0KCQkJZG1wKCRmb3JtYXRzKTsNCgkJfQ0KCX0NCg0KCWlmICghZW1w dHkoJHNyYykpIHsNCgkJLy8gUGFnaW5nIGluZm9ybWF0aW9uDQoJCSRyb3dpbmZvWydudW1y ZWNzJ10gPSBzdWJzdHJfY291bnQoJHNyYywgJzwnLiRyZWNvcmQuJz4nKTsNCgkJJHJvd2lu Zm9bJ3BhZ2Vfcm93Y250J10gPSAwOw0KCQkkcm93aW5mb1snbGltaXQnXSA9ICgkbGltaXQg PCAkcm93aW5mb1snbnVtcmVjcyddKSA/ICRsaW1pdCA6IDA7DQoJCWlmICgkb2Zmc2V0ID49 IDApIHsNCgkJCWlmICgkb2Zmc2V0IDwgJHJvd2luZm9bJ251bXJlY3MnXSkgew0KCQkJCSRy b3dpbmZvWydvZmZzZXQnXSA9ICRvZmZzZXQ7DQoJCQl9IGVsc2Ugew0KCQkJCSRyb3dpbmZv WydvZmZzZXQnXSA9ICRyb3dpbmZvWydudW1yZWNzJ107DQoJCQkJJHJvd2luZm9bJ2xpbWl0 J10gPSAwOw0KCQkJfQ0KCQl9IGVsc2Ugew0KCQkJJG5lZ29mZiA9ICRyb3dpbmZvWydudW1y ZWNzJ10gKyAkb2Zmc2V0Ow0KCQkJaWYgKCRuZWdvZmYgPiAwKSB7DQoJCQkJJHJvd2luZm9b J29mZnNldCddID0gJG5lZ29mZjsNCgkJCX0gZWxzZSB7DQoJCQkJJHJvd2luZm9bJ29mZnNl dCddID0gMDsNCgkJCQkkcm93aW5mb1snbGltaXQnXSA9ICRyb3dpbmZvWydudW1yZWNzJ107 DQoJCQl9DQoJCX0NCg0KCQkvLyBSZS1hc3NpZ24gdGhlIGF0dHMgaW4gY2FzZSB0aGV5J3Zl IGJlZW4gY2hhbmdlZCBieSByZWFjaGluZyB0aGUgYm91bmRzIG9mIHRoZSBkb2N1bWVudA0K CQkkb2Zmc2V0ID0gJHJvd2luZm9bJ29mZnNldCddOw0KCQkkbGltaXQgPSAkcm93aW5mb1sn bGltaXQnXTsNCg0KCQlpZiAoJGxpbWl0ID4gMCkgew0KCQkJJGtlZXBzYWZlID0gJHRoaXNw YWdlOw0KCQkJJHJvd2luZm9bJ3RvdGFsJ10gPSAkcm93aW5mb1snbnVtcmVjcyddIC0gJG9m ZnNldDsNCgkJCSRyb3dpbmZvWydudW1QYWdlcyddID0gY2VpbCgkcm93aW5mb1sndG90YWwn XSAvICRsaW1pdCk7DQoJCQkkcm93aW5mb1sncGcnXSA9ICghZ3BzKCRwYWdldmFyKSkgPyAx IDogZ3BzKCRwYWdldmFyKTsNCgkJCSRyb3dpbmZvWydwZ29mZnNldCddID0gJG9mZnNldCAr ICgoJHJvd2luZm9bJ3BnJ10gLSAxKSAqICRsaW1pdCk7DQoJCQkkcm93aW5mb1sncHJldnBn J10gPSAoKCRyb3dpbmZvWydwZyddLTEpID4gMCkgPyAkcm93aW5mb1sncGcnXS0xIDogJyc7 DQoJCQkkcm93aW5mb1snbmV4dHBnJ10gPSAoKCRyb3dpbmZvWydwZyddKzEpIDw9ICRyb3dp bmZvWydudW1QYWdlcyddKSA/ICRyb3dpbmZvWydwZyddKzEgOiAnJzsNCgkJCSRyb3dpbmZv WydwYWdlcm93cyddID0gKCRyb3dpbmZvWydwZyddID09ICRyb3dpbmZvWydudW1QYWdlcydd KSA/ICRyb3dpbmZvWyd0b3RhbCddLSgkbGltaXQgKiAoJHJvd2luZm9bJ251bVBhZ2VzJ10t MSkpIDogJGxpbWl0Ow0KCQkJJHJvd2luZm9bJ3VuaXF1ZV9pZCddID0gJHVuaXE7DQoNCgkJ CS8vIHNlbmQgcGFnaW5nIGluZm8gdG8gdHhwOm5ld2VyIGFuZCB0eHA6b2xkZXINCgkJCSRw YWdlb3V0WydwZyddID0gJHJvd2luZm9bJ3BnJ107DQoJCQkkcGFnZW91dFsnbnVtUGFnZXMn XSA9ICRyb3dpbmZvWydudW1QYWdlcyddOw0KCQkJJHBhZ2VvdXRbJ3MnXSA9ICRwcmV0ZXh0 WydzJ107DQoJCQkkcGFnZW91dFsnYyddID0gJHByZXRleHRbJ2MnXTsNCgkJCSRwYWdlb3V0 WydncmFuZF90b3RhbCddID0gJHJvd2luZm9bJ251bXJlY3MnXTsNCgkJCSRwYWdlb3V0Wyd0 b3RhbCddID0gJHJvd2luZm9bJ3RvdGFsJ107DQoJCQkkdGhpc3BhZ2UgPSAkcGFnZW91dDsN CgkJfSBlbHNlIHsNCgkJCSRyb3dpbmZvWydwZ29mZnNldCddID0gJG9mZnNldDsNCgkJfQ0K DQoJCSRyb3dpbmZvWydydW5uaW5nX3Jvd2NudCddID0gJHJvd2luZm9bJ3Bnb2Zmc2V0J10t JG9mZnNldDsNCgkJJHJvd2luZm9bJ2ZpcnN0X3JlYyddID0gJHJvd2luZm9bJ3J1bm5pbmdf cm93Y250J10gKyAxOw0KCQkkcm93aW5mb1snbGFzdF9yZWMnXSA9ICgkbGltaXQgPiAwKSA/ ICRyb3dpbmZvWydmaXJzdF9yZWMnXSArICRyb3dpbmZvWydwYWdlcm93cyddIC0gMSA6ICRy b3dpbmZvWydudW1yZWNzJ107DQoJCWlmICgkbGltaXQgPiAwKSB7DQoJCQkkcm93aW5mb1sn cHJldl9yb3dzJ10gPSAoKCRyb3dpbmZvWydwcmV2cGcnXSkgPyAkbGltaXQgOiAwKTsNCgkJ CSRyb3dpbmZvWyduZXh0X3Jvd3MnXSA9ICgoJHJvd2luZm9bJ25leHRwZyddKSA/ICgoJHJv d2luZm9bJ2xhc3RfcmVjJ10rJGxpbWl0KzEpID4gJHJvd2luZm9bJ3RvdGFsJ10gPyAkcm93 aW5mb1sndG90YWwnXS0kcm93aW5mb1snbGFzdF9yZWMnXSA6ICRsaW1pdCkgOiAwKTsNCgkJ fQ0KDQoJCWlmICgkZGVidWcgPiAwKSB7DQoJCQllY2hvICcrKyBQQUdJTkcgSU5GTyArKyc7 DQoJCQlkbXAoJHJvd2luZm8pOw0KCQl9DQoNCgkJLy8gRG8gdGhlIGRpcnR5IFhNTCBkZWVk DQoJCSRyZWYgPSBuZXcgc21kX3htbF9wYXJzZXIoJHNyYywgJGZpZWxkcywgJHJlY29yZCwg JHNraXAsICR1cHBlcmNhc2UsICR0YXJnZXRfZW5jLCAkbGlua2lmeSwgJGRlZmF1bHRzLCAk c2V0X2VtcHR5LCAkZm9ybWF0cywgJHRoaW5nLCAkZGVsaW0sICRwYXJhbV9kZWxpbSwgJGNv bmNhdCwgJGNvbmNhdF9kZWxpbSwgJHJvd2luZm8sICRkZWJ1Zyk7DQoJCSRyZXN1bHQgPSAk cmVmLT5nZXRSZXN1bHRzKCk7DQoNCgkJLy8gQ3JlYXRlIHRoZSBwYWdlIGZvcm0NCgkJJHBh Z2VibG9jayA9ICcnOw0KCQkkZmluYWxvdXQgPSAkcmVwYWdlbWVudHMgPSBhcnJheSgpOw0K DQoJCWlmICgkcm93aW5mb1snbGltaXQnXSA+IDApIHsNCgkJCSRyZXBhZ2VtZW50c1sne3Nt ZF94bWxfdG90YWxyZWNzfSddID0gJHJvd2luZm9bJ3RvdGFsJ107DQoJCQkkcmVwYWdlbWVu dHNbJ3tzbWRfeG1sX3BhZ2VyZWNzfSddID0gJHJvd2luZm9bJ3BhZ2Vyb3dzJ107DQoJCQkk cmVwYWdlbWVudHNbJ3tzbWRfeG1sX3BhZ2VzfSddID0gJHJvd2luZm9bJ251bVBhZ2VzJ107 DQoJCQkkcmVwYWdlbWVudHNbJ3tzbWRfeG1sX3ByZXZwYWdlfSddID0gJHJvd2luZm9bJ3By ZXZwZyddOw0KCQkJJHJlcGFnZW1lbnRzWyd7c21kX3htbF90aGlzcGFnZX0nXSA9ICRyb3dp bmZvWydwZyddOw0KCQkJJHJlcGFnZW1lbnRzWyd7c21kX3htbF9uZXh0cGFnZX0nXSA9ICRy b3dpbmZvWyduZXh0cGcnXTsNCgkJCSRyZXBhZ2VtZW50c1sne3NtZF94bWxfcmVjX3N0YXJ0 fSddID0gJHJvd2luZm9bJ2ZpcnN0X3JlYyddOw0KCQkJJHJlcGFnZW1lbnRzWyd7c21kX3ht bF9yZWNfZW5kfSddID0gJHJvd2luZm9bJ2xhc3RfcmVjJ107DQoJCQkkcmVwYWdlbWVudHNb J3tzbWRfeG1sX3JlY3NfcHJldn0nXSA9ICRyb3dpbmZvWydwcmV2X3Jvd3MnXTsNCgkJCSRy ZXBhZ2VtZW50c1sne3NtZF94bWxfcmVjc19uZXh0fSddID0gJHJvd2luZm9bJ25leHRfcm93 cyddOw0KCQkJJHJlcGFnZW1lbnRzWyd7c21kX3htbF91bmlxdWVfaWR9J10gPSAkcm93aW5m b1sndW5pcXVlX2lkJ107DQoJCQkkc21kX3htbF9wZ2luZm8gPSAkcmVwYWdlbWVudHM7DQoJ CQkkcGFnZWJsb2NrID0gcGFyc2Uoc3RydHIoJHBhZ2Vmb3JtLCAkcmVwYWdlbWVudHMpKTsN CgkJfQ0KDQoJCS8vIE1ha2UgdXAgdGhlIGZpbmFsIG91dHB1dA0KCQlpZiAoaW5fYXJyYXko ImFib3ZlIiwgJHBhZ2ViaXQpKSB7DQoJCQkkZmluYWxvdXRbXSA9ICRwYWdlYmxvY2s7DQoJ CX0NCgkJJGZpbmFsb3V0W10gPSBkb1dyYXAoJHJlc3VsdCwgJHdyYXB0YWcsICRicmVhaywg JGNsYXNzKTsNCgkJaWYgKGluX2FycmF5KCJiZWxvdyIsICRwYWdlYml0KSkgew0KCQkJJGZp bmFsb3V0W10gPSAkcGFnZWJsb2NrOw0KCQl9DQoNCgkJLy8gUmVzdG9yZSB0aGUgcGFnaW5n IG91dHNpZGUgdGhlIHBsdWdpbiBjb250YWluZXINCgkJaWYgKCRsaW1pdCA+IDApIHsNCgkJ CSR0aGlzcGFnZSA9ICRrZWVwc2FmZTsNCgkJfQ0KDQoJCXJldHVybiBqb2luKCcnLCAkZmlu YWxvdXQpOw0KCX0gZWxzZSB7DQoJCXJldHVybiAnJzsNCgl9DQp9DQoNCmNsYXNzIHNtZF94 bWxfcGFyc2VyIHsNCglwcml2YXRlICRkYXRhOw0KCXByaXZhdGUgJGZpZWxkczsNCglwcml2 YXRlICRyZWM7DQoJcHJpdmF0ZSAkc2tpcDsNCglwcml2YXRlICRjZjsNCglwcml2YXRlICRv dXRlbmM7DQoJcHJpdmF0ZSAkbGlua2lmeTsNCglwcml2YXRlICRkZWZhdWx0czsNCglwcml2 YXRlICRzZXRfZW1wdHk7DQoJcHJpdmF0ZSAkZm9ybWF0czsNCg0KCXByaXZhdGUgJGludGFn Ow0KCXByaXZhdGUgJGluZGF0YTsNCglwcml2YXRlICRza2lwdGFnOw0KCXByaXZhdGUgJHht bHRhZzsNCglwcml2YXRlICR4bWxhdHRzOw0KCXByaXZhdGUgJHhtbGRhdGE7DQoJcHJpdmF0 ZSAkdGhpbmc7DQoJcHJpdmF0ZSAkb3V0Ow0KCXByaXZhdGUgJHBkZWxpbTsNCglwcml2YXRl ICRjZGVsaW07DQoJcHJpdmF0ZSAkY29uY2F0Ow0KCXByaXZhdGUgJHJvd2luZm87DQoJcHJp dmF0ZSAkc2hvd19yZWNvcmQ7DQoJcHJpdmF0ZSAkZGVidWc7DQoNCgkvKioNCgkqIGNvbnN0 cnVjdG9yDQoJKi8NCglmdW5jdGlvbiBzbWRfeG1sX3BhcnNlcigkZGF0YSwgJGZpZWxkcywg JHJlYywgJHNraXAsICRjZiwgJG91dGVuYywgJGxpbmtpZnksICRkZWZhdWx0cywgJHNldF9l bXB0eSwgJGZvcm1hdHMsICR0aGluZywgJGRlbGltLCAkcGRlbGltLCAkY29uY2F0LCAkY2Rl bGltLCAkcmluZm8sICRkZWJ1Zz0wKSB7DQoJCSR0aGlzLT5kYXRhID0gJGRhdGE7DQoJCSR0 aGlzLT5maWVsZHMgPSBkb19saXN0KCRmaWVsZHMsICRkZWxpbSk7DQoJCSR0aGlzLT5zdWJm aWVsZHMgPSBhcnJheSgpOw0KCQkkdGhpcy0+c2tpcCA9IGRvX2xpc3QoJHNraXAsICRkZWxp bSk7DQoJCSR0aGlzLT5yZWMgPSAkcmVjOw0KCQkkdGhpcy0+Y2YgPSAkY2Y7IC8vIENhc2Ug Zm9sZGluZw0KCQkkdGhpcy0+b3V0ZW5jID0gJG91dGVuYzsgLy8gVGFyZ2V0IGVuY29kaW5n DQoJCSR0aGlzLT5saW5raWZ5ID0gZG9fbGlzdCgkbGlua2lmeSwgJGRlbGltKTsNCgkJJHRo aXMtPmRlZmF1bHRzID0gJGRlZmF1bHRzOw0KCQkkdGhpcy0+c2V0X2VtcHR5ID0gJHNldF9l bXB0eTsNCgkJJHRoaXMtPmZvcm1hdHMgPSAkZm9ybWF0czsNCgkJJHRoaXMtPnRoaW5nID0g JHRoaW5nOw0KCQkkdGhpcy0+cGRlbGltID0gJHBkZWxpbTsNCgkJJHRoaXMtPmNkZWxpbSA9 ICRjZGVsaW07DQoJCSR0aGlzLT5jb25jYXQgPSAkY29uY2F0Ow0KCQkkdGhpcy0+cm93aW5m byA9ICRyaW5mbzsNCgkJJHRoaXMtPmRlYnVnID0gJGRlYnVnOw0KDQoJCSR0aGlzLT5pbnRh ZyA9IGZhbHNlOw0KCQkkdGhpcy0+ZXhpc3RzID0gZmFsc2U7DQoJCSR0aGlzLT5za2lwdGFn ID0gJyc7DQoJCSR0aGlzLT54bWx0YWcgPSAnJzsNCgkJJHRoaXMtPnhtbHRhdHRzID0gJyc7 DQoJCSR0aGlzLT54bWxkYXRhID0gYXJyYXkoKTsNCgkJJHRoaXMtPm91dCA9IGFycmF5KCk7 DQoNCgkJLy8gQ29weSBhbnkgc3ViZmllbGRzIG91dCBvZiB0aGUgbGlzdA0KCQlmb3JlYWNo ICgkdGhpcy0+ZmllbGRzIGFzICRrZXkgPT4gJGZsZCkgew0KCQkJJHNmID0gZG9fbGlzdCgk ZmxkLCAkcGRlbGltKTsNCgkJCWZvcigkaWR4ID0gMTsgJGlkeCA8IGNvdW50KCRzZik7ICRp ZHgrKykgew0KCQkJCSR0aGlzLT5zdWJmaWVsZHNbJHNmWzBdXVtdID0gJHNmWyRpZHhdOw0K CQkJfQ0KCQkJJHRoaXMtPmZpZWxkc1ska2V5XSA9ICRzZlswXTsgLy8gTWFrZSBzdXJlIHRo ZSBmaWVsZCBvbmx5IGhvbGRzIHRoZSB6ZXJvdGggZW50cnkNCgkJfQ0KCQkkdGhpcy0+cGFy c2UoKTsNCgl9DQoNCglwdWJsaWMgZnVuY3Rpb24gZ2V0UmVzdWx0cygpIHsNCgkJaWYgKCR0 aGlzLT5vdXQpIHsNCgkJCXJldHVybiAkdGhpcy0+b3V0Ow0KCQl9IGVsc2Ugew0KCQkJcmV0 dXJuICcnOw0KCQl9DQoJfQ0KDQoJcHJpdmF0ZSBmdW5jdGlvbiBwYXJzZSgpIHsNCgkJJHRo aXMtPmRhdGEgPSBwcmVnX3JlcGxhY2UoIi8+Ii4iW1s6c3BhY2U6XV0rIi4iPC9pIiwgIj48 IiwgJHRoaXMtPmRhdGEpOyAvLyBLaWxsIHdoaXRlc3BhY2UgaW4gZGF0YQ0KCQkkeG1scGFy c2VyID0geG1sX3BhcnNlcl9jcmVhdGUoKTsNCgkJeG1sX3NldF9vYmplY3QoJHhtbHBhcnNl ciwgJHRoaXMpOw0KCQl4bWxfcGFyc2VyX3NldF9vcHRpb24oJHhtbHBhcnNlciwgWE1MX09Q VElPTl9DQVNFX0ZPTERJTkcsICR0aGlzLT5jZik7DQoJCXhtbF9wYXJzZXJfc2V0X29wdGlv bigkeG1scGFyc2VyLCBYTUxfT1BUSU9OX1RBUkdFVF9FTkNPRElORywgJHRoaXMtPm91dGVu Yyk7DQoJCXhtbF9zZXRfZWxlbWVudF9oYW5kbGVyKCR4bWxwYXJzZXIsICJzbWRfeG1sX3N0 YXJ0X3RhZyIsICJzbWRfeG1sX2VuZF90YWciKTsNCgkJeG1sX3NldF9jaGFyYWN0ZXJfZGF0 YV9oYW5kbGVyKCR4bWxwYXJzZXIsICJzbWRfeG1sX3RhZ19jb250ZW50cyIpOw0KCQl4bWxf cGFyc2UoJHhtbHBhcnNlciwgJHRoaXMtPmRhdGEpOw0KCQl4bWxfcGFyc2VyX2ZyZWUoJHht bHBhcnNlcik7DQoJfQ0KDQoJcHJpdmF0ZSBmdW5jdGlvbiBzbWRfeG1sX3N0YXJ0X3RhZygk cGFyc2VyLCAkbmFtZSwgJGF0dHJpYnMpIHsNCgkJJHBndmFsID0gJHRoaXMtPnJvd2luZm9b J3Bnb2Zmc2V0J10gLSAxOw0KCQkkbGltID0gJHRoaXMtPnJvd2luZm9bJ2xpbWl0J10gPiAw Ow0KCQkkdGhpcy0+c2hvd19yZWNvcmQgPSAkbGltID8gKCgkdGhpcy0+cm93aW5mb1sncGFn ZV9yb3djbnQnXSA+ICRwZ3ZhbCkgJiYgKCR0aGlzLT5yb3dpbmZvWydwYWdlX3Jvd2NudCdd IDw9ICRwZ3ZhbCArICR0aGlzLT5yb3dpbmZvWydwYWdlcm93cyddKSkgOiAkdGhpcy0+cm93 aW5mb1sncGFnZV9yb3djbnQnXSA+ICRwZ3ZhbDsNCg0KCQlpZiAoJG5hbWUgPT0gJHRoaXMt PnJlYyAmJiAkdGhpcy0+c2hvd19yZWNvcmQpIHsNCgkJCSR0aGlzLT5pbnRhZyA9IHRydWU7 DQoJCX0NCgkJaWYgKCR0aGlzLT5pbnRhZykgew0KCQkJaWYgKGluX2FycmF5KCRuYW1lLCAk dGhpcy0+c2tpcCkpIHsNCgkJCQkkdGhpcy0+eG1sdGFnID0gJyc7DQoJCQkJJHRoaXMtPnht bGF0dHMgPSBhcnJheSgpOw0KCQkJCSR0aGlzLT5za2lwdGFnID0gJG5hbWU7DQoJCQl9IGVs c2Ugew0KCQkJCSR0aGlzLT54bWx0YWcgPSAkbmFtZTsNCgkJCQkkdGhpcy0+eG1sYXR0cyA9 ICRhdHRyaWJzOw0KCQkJCWlmICgkdGhpcy0+Y29uY2F0ICYmIGlzc2V0KCR0aGlzLT54bWxk YXRhWyd7Jy4kdGhpcy0+eG1sdGFnLid9J10pKSB7DQoJCQkJCSR0aGlzLT5leGlzdHMgPSB0 cnVlOw0KICAgICAgICAJIH0gZWxzZSB7DQoJCQkJCSR0aGlzLT5leGlzdHMgPSBmYWxzZTsN CgkJCQl9DQoJCQl9DQoJCX0NCgkJJHRoaXMtPmluZGF0YSA9IGZhbHNlOw0KCX0NCg0KCXBy aXZhdGUgZnVuY3Rpb24gc21kX3htbF9lbmRfdGFnKCRwYXJzZXIsICRuYW1lKSB7DQoJCWlm ICgkbmFtZSA9PSAkdGhpcy0+cmVjICYmICRuYW1lICE9ICR0aGlzLT5za2lwdGFnKSB7DQoJ CQkkdGhpcy0+aW50YWcgPSBmYWxzZTsNCgkJCSRsaW0gPSAoJHRoaXMtPnJvd2luZm9bJ2xp bWl0J10gPiAwKSA/IHRydWUgOiBmYWxzZTsNCg0KCQkJLy8gQXBwZW5kIHJvdyBjb3VudGVy IGluZm9ybWF0aW9uDQoJCQkkdGhpcy0+eG1sZGF0YVsne3NtZF94bWxfdG90YWxyZWNzfSdd ID0gJGxpbSA/ICR0aGlzLT5yb3dpbmZvWyd0b3RhbCddIDogJHRoaXMtPnJvd2luZm9bJ251 bXJlY3MnXSAtICR0aGlzLT5yb3dpbmZvWydwZ29mZnNldCddOw0KCQkJJHRoaXMtPnhtbGRh dGFbJ3tzbWRfeG1sX3BhZ2VyZWNzfSddID0gJGxpbSA/ICR0aGlzLT5yb3dpbmZvWydwYWdl cm93cyddIDogJHRoaXMtPnhtbGRhdGFbJ3tzbWRfeG1sX3RvdGFscmVjc30nXTsNCgkJCSR0 aGlzLT54bWxkYXRhWyd7c21kX3htbF9wYWdlc30nXSA9ICRsaW0gPyAkdGhpcy0+cm93aW5m b1snbnVtUGFnZXMnXSA6IDE7DQoJCQkkdGhpcy0+eG1sZGF0YVsne3NtZF94bWxfdGhpc3Bh Z2V9J10gPSAkbGltID8gJHRoaXMtPnJvd2luZm9bJ3BnJ10gOiAxOw0KCQkJJHRoaXMtPnht bGRhdGFbJ3tzbWRfeG1sX3RoaXNpbmRleH0nXSA9ICR0aGlzLT5yb3dpbmZvWydwYWdlX3Jv d2NudCddIC0gJHRoaXMtPnJvd2luZm9bJ29mZnNldCddOw0KCQkJJHRoaXMtPnhtbGRhdGFb J3tzbWRfeG1sX3RoaXNyZWN9J10gPSAkdGhpcy0+cm93aW5mb1sncGFnZV9yb3djbnQnXSAt ICR0aGlzLT5yb3dpbmZvWydvZmZzZXQnXSArIDE7DQoJCQkkdGhpcy0+eG1sZGF0YVsne3Nt ZF94bWxfcnVuaW5kZXh9J10gPSAkdGhpcy0+cm93aW5mb1sncnVubmluZ19yb3djbnQnXTsN CgkJCSR0aGlzLT54bWxkYXRhWyd7c21kX3htbF9ydW5yZWN9J10gPSAkdGhpcy0+cm93aW5m b1sncnVubmluZ19yb3djbnQnXSArIDE7DQoNCgkJCS8vIFNldCBhbnkgdGFnIGNvbnRlbnRz IHRvIGEgZGVmYXVsdCB2YWx1ZSwgaWYgc3BlY2lmaWVkDQoJCQlpZiAoJHRoaXMtPmRlZmF1 bHRzKSB7DQoJCQkJZm9yZWFjaCAoJHRoaXMtPmZpZWxkcyBhcyAkZmllbGQpIHsNCgkJCQkJ JGZsaXN0ID0gYXJyYXkoJGZpZWxkKTsNCgkJCQkJaWYgKGFycmF5X2tleV9leGlzdHMoJGZp ZWxkLCAkdGhpcy0+c3ViZmllbGRzKSkgew0KCQkJCQkJJGZsaXN0ID0gYXJyYXlfbWVyZ2Uo JGZsaXN0LCAkdGhpcy0+c3ViZmllbGRzWyRmaWVsZF0pOw0KCQkJCQl9DQoJCQkJCWZvcmVh Y2ggKCRmbGlzdCBhcyAkc2ZpZWxkKSB7DQoJCQkJCQlpZiAoIWlzc2V0KCR0aGlzLT54bWxk YXRhWyd7Jy4kc2ZpZWxkLid9J10pKSB7DQoJCQkJCQkJaWYgKGFycmF5X2tleV9leGlzdHMo JHNmaWVsZCwgJHRoaXMtPmRlZmF1bHRzKSkgew0KCQkJCQkJCQkkdGhpcy0+eG1sZGF0YVsn eycuJHNmaWVsZC4nfSddID0gJHRoaXMtPmRlZmF1bHRzWyRzZmllbGRdOw0KCQkJCQkJCX0g ZWxzZSBpZiAoJHRoaXMtPnNldF9lbXB0eSkgew0KCQkJCQkJCQkkdGhpcy0+eG1sZGF0YVsn eycuJHNmaWVsZC4nfSddID0gJyc7DQoJCQkJCQkJfQ0KCQkJCQkJfQ0KCQkJCQl9DQoJCQkJ fQ0KCQkJfQ0KDQoJCQkvLyBSZWZvcm1hdCBhbnkgZmllbGRzLCBpZiBzcGVjaWZpZWQNCgkJ CWlmICgkdGhpcy0+Zm9ybWF0cykgew0KCQkJCWZvcmVhY2ggKCR0aGlzLT5maWVsZHMgYXMg JGZpZWxkKSB7DQoJCQkJCSRmbGlzdCA9IGFycmF5KCRmaWVsZCk7DQoJCQkJCWlmIChhcnJh eV9rZXlfZXhpc3RzKCRmaWVsZCwgJHRoaXMtPnN1YmZpZWxkcykpIHsNCgkJCQkJCSRmbGlz dCA9IGFycmF5X21lcmdlKCRmbGlzdCwgJHRoaXMtPnN1YmZpZWxkc1skZmllbGRdKTsNCgkJ CQkJfQ0KCQkJCQlmb3JlYWNoICgkZmxpc3QgYXMgJHNmaWVsZCkgew0KCQkJCQkJaWYgKGlz c2V0KCR0aGlzLT54bWxkYXRhWyd7Jy4kc2ZpZWxkLid9J10pICYmIGFycmF5X2tleV9leGlz dHMoJHNmaWVsZCwgJHRoaXMtPmZvcm1hdHNbJ3R5cGUnXSkpIHsNCgkJCQkJCQlzd2l0Y2gg KCR0aGlzLT5mb3JtYXRzWyd0eXBlJ11bJHNmaWVsZF0pIHsNCgkJCQkJCQkJY2FzZSAnZGF0 ZSc6DQoJCQkJCQkJCQkkbmQgPSBzdHJ0b3RpbWUoJHRoaXMtPnhtbGRhdGFbJ3snLiRzZmll bGQuJ30nXSk7DQoJCQkJCQkJCQlpZiAoJG5kICE9PSBmYWxzZSkgew0KCQkJCQkJCQkJCSR0 aGlzLT54bWxkYXRhWyd7Jy4kc2ZpZWxkLid9J10gPSBzdHJmdGltZSgkdGhpcy0+Zm9ybWF0 c1snZGF0YSddWyRzZmllbGRdWzBdLCAkbmQpOw0KCQkJCQkJCQkJfQ0KCQkJCQkJCQkJYnJl YWs7DQoJCQkJCQkJCWNhc2UgJ2xpbmsnOg0KCQkJCQkJCQkJLy8gRnJvbSBodHRwOi8vY29k ZXNuaXBwZXRzLmpveWVudC5jb20vcG9zdHMvc2hvdy8yMTA0DQoJCQkJCQkJCQkkcGF0ID0g IkBcYihodHRwcz86Ly8pPygoWzAtOWEtekEtWl8hfionKCkuJj0rJCUtXSs6KT9bMC05YS16 QS1aXyF+KicoKS4mPSskJS1dK1xAKT8oKFswLTldezEsM31cLil7M31bMC05XXsxLDN9fChb MC05YS16QS1aXyF+KicoKS1dK1wuKSooWzAtOWEtekEtWl1bMC05YS16QS1aLV17MCw2MX0p P1swLTlhLXpBLVpdXC5bYS16QS1aXXsyLDZ9KSg6WzAtOV17MSw0fSk/KCgvWzAtOWEtekEt Wl8hfionKCkuOz86XEAmPSskLCUjLV0rKSovPylAIjsNCgkJCQkJCQkJCSR0aGlzLT54bWxk YXRhWyd7Jy4kc2ZpZWxkLid9J10gPSBwcmVnX3JlcGxhY2UoJHBhdCwgJzxhIGhyZWY9Ilww Ij5cMDwvYT4nLCAkdGhpcy0+eG1sZGF0YVsneycuJHNmaWVsZC4nfSddKTsNCgkJCQkJCQkJ CWJyZWFrOw0KCQkJCQkJCQljYXNlICdlc2NhcGUnOg0KCQkJCQkJCQkJJHRoaXMtPnhtbGRh dGFbJ3snLiRzZmllbGQuJ30nXSA9IGRvU2xhc2goJHRoaXMtPnhtbGRhdGFbJ3snLiRzZmll bGQuJ30nXSk7DQoJCQkJCQkJCQlicmVhazsNCgkJCQkJCQkJY2FzZSAnc2FuaXRpemUnOg0K CQkJCQkJCQkJaWYgKCR0aGlzLT5mb3JtYXRzWydkYXRhJ11bJHNmaWVsZF1bMF0gPT0gInVy bCIpIHsNCgkJCQkJCQkJCQkkdGhpcy0+eG1sZGF0YVsneycuJHNmaWVsZC4nfSddID0gc2Fu aXRpemVGb3JVcmwoJHRoaXMtPnhtbGRhdGFbJ3snLiRzZmllbGQuJ30nXSk7DQoJCQkJCQkJ CQl9IGVsc2UgaWYgKCR0aGlzLT5mb3JtYXRzWydkYXRhJ11bJHNmaWVsZF1bMF0gPT0gImZp bGUiKSB7DQoJCQkJCQkJCQkJJHRoaXMtPnhtbGRhdGFbJ3snLiRzZmllbGQuJ30nXSA9IHNh bml0aXplRm9yRmlsZSgkdGhpcy0+eG1sZGF0YVsneycuJHNmaWVsZC4nfSddKTsNCgkJCQkJ CQkJCX0gZWxzZSBpZiAoJHRoaXMtPmZvcm1hdHNbJ2RhdGEnXVskc2ZpZWxkXVswXSA9PSAi dXJsX3RpdGxlIikgew0KCQkJCQkJCQkJCSR0aGlzLT54bWxkYXRhWyd7Jy4kc2ZpZWxkLid9 J10gPSBzdHJpcFNwYWNlKCR0aGlzLT54bWxkYXRhWyd7Jy4kc2ZpZWxkLid9J10sIDEpOw0K CQkJCQkJCQkJfQ0KCQkJCQkJCQkJYnJlYWs7DQoJCQkJCQkJCWNhc2UgJ2Nhc2UnOg0KCQkJ CQkJCQkJZm9yICgkaWR4ID0gMDsgJGlkeCA8IGNvdW50KCR0aGlzLT5mb3JtYXRzWydkYXRh J11bJHNmaWVsZF0pOyAkaWR4KyspIHsNCgkJCQkJCQkJCQlpZiAoJHRoaXMtPmZvcm1hdHNb J2RhdGEnXVskc2ZpZWxkXVskaWR4XSA9PSAidXBwZXIiKSB7DQoJCQkJCQkJCQkJCSR0aGlz LT54bWxkYXRhWyd7Jy4kc2ZpZWxkLid9J10gPSBzdHJ0b3VwcGVyKCR0aGlzLT54bWxkYXRh Wyd7Jy4kc2ZpZWxkLid9J10pOw0KCQkJCQkJCQkJCX0gZWxzZSBpZiAoJHRoaXMtPmZvcm1h dHNbJ2RhdGEnXVskc2ZpZWxkXVskaWR4XSA9PSAibG93ZXIiKSB7DQoJCQkJCQkJCQkJCSR0 aGlzLT54bWxkYXRhWyd7Jy4kc2ZpZWxkLid9J10gPSBzdHJ0b2xvd2VyKCR0aGlzLT54bWxk YXRhWyd7Jy4kc2ZpZWxkLid9J10pOw0KCQkJCQkJCQkJCX0gZWxzZSBpZiAoJHRoaXMtPmZv cm1hdHNbJ2RhdGEnXVskc2ZpZWxkXVskaWR4XSA9PSAidWNmaXJzdCIpIHsNCgkJCQkJCQkJ CQkJJHRoaXMtPnhtbGRhdGFbJ3snLiRzZmllbGQuJ30nXSA9IHVjZmlyc3QoJHRoaXMtPnht bGRhdGFbJ3snLiRzZmllbGQuJ30nXSk7DQoJCQkJCQkJCQkJfSBlbHNlIGlmICgkdGhpcy0+ Zm9ybWF0c1snZGF0YSddWyRzZmllbGRdWyRpZHhdID09ICJ1Y3dvcmRzIikgew0KCQkJCQkJ CQkJCQkkdGhpcy0+eG1sZGF0YVsneycuJHNmaWVsZC4nfSddID0gdWN3b3JkcygkdGhpcy0+ eG1sZGF0YVsneycuJHNmaWVsZC4nfSddKTsNCgkJCQkJCQkJCQl9DQoJCQkJCQkJCQl9DQoJ CQkJCQkJCQlicmVhazsNCgkJCQkJCQl9DQoJCQkJCQl9DQoJCQkJCX0NCgkJCQl9DQoJCQl9 DQoNCgkJCWlmICgkdGhpcy0+ZGVidWcgPiAwKSB7DQoJCQkJZWNobyAiKysgUkVQTEFDRU1F TlRTICsrIjsNCgkJCQlkbXAoJHRoaXMtPnhtbGRhdGEpOw0KCQkJfQ0KDQoJCQlpZiAoJHRo aXMtPnNob3dfcmVjb3JkKSB7DQoJCQkJJHRoaXMtPm91dFtdID0gcGFyc2Uoc3RydHIoJHRo aXMtPnRoaW5nLCAkdGhpcy0+eG1sZGF0YSkpOw0KCQkJfQ0KDQoJCQkvLyBQcmVwYXJlIGZv ciBuZXh0IGl0ZXJhdGlvbg0KCQkJJHRoaXMtPnJvd2luZm9bJ3J1bm5pbmdfcm93Y250J10g PSAkdGhpcy0+cm93aW5mb1sncnVubmluZ19yb3djbnQnXSsxOw0KCQkJJHRoaXMtPnJvd2lu Zm9bJ3BhZ2Vfcm93Y250J10gPSAkdGhpcy0+cm93aW5mb1sncGFnZV9yb3djbnQnXSsxOw0K CQkJJHRoaXMtPnhtbGRhdGEgPSBhcnJheSgpOw0KCQkJJHRoaXMtPmluZGF0YSA9IGZhbHNl Ow0KCQl9DQoJCWlmICgkbmFtZSA9PSAkdGhpcy0+c2tpcHRhZykgew0KCQkJJHRoaXMtPnNr aXB0YWcgPSAnJzsNCgkJfQ0KCX0NCg0KCXByaXZhdGUgZnVuY3Rpb24gc21kX3htbF90YWdf Y29udGVudHMoJHBhcnNlciwgJGRhdGEpIHsNCgkJaWYgKCR0aGlzLT5pbnRhZyAmJiAhJHRo aXMtPnNraXB0YWcpIHsNCgkJCWlmICgkdGhpcy0+ZGVidWcgPiAxKSB7DQoJCQkJZG1wKCR0 aGlzLT54bWx0YWcgLiAiIDogIi4gJGRhdGEpOw0KCQkJfQ0KCQkJaWYgKGluX2FycmF5KCR0 aGlzLT54bWx0YWcsICR0aGlzLT5maWVsZHMpKSB7DQoJCQkJLy8gVE8gUkVNT1ZFDQoJCQkJ aWYgKGluX2FycmF5KCR0aGlzLT54bWx0YWcsICR0aGlzLT5saW5raWZ5KSkgew0KCQkJCQkk ZGF0YSA9IHByZWdfcmVwbGFjZSgnQChodHRwcz86Ly8oWy1cd1wuXSspKyg6XGQrKT8oLyhb XHcvX1wuXSooXD9cUyspPyk/KT8pQCcsICc8YSBocmVmPSIkMSI+JDE8L2E+JywgJGRhdGEp Ow0KCQkJCX0NCgkJCQkvLyBFTkQ6IFRPIFJFTU9WRQ0KCQkJCWlmICgkdGhpcy0+aW5kYXRh KSB7DQoJCQkJCWlmICgkdGhpcy0+ZXhpc3RzKSB7DQoJCQkJCQkkdGhpcy0+eG1sZGF0YVsn eycuJHRoaXMtPnhtbHRhZy4nfSddIC49ICR0aGlzLT5jZGVsaW0uJGRhdGE7DQoJCQkJCX0g ZWxzZSB7DQoJCQkJCQkkdGhpcy0+eG1sZGF0YVsneycuJHRoaXMtPnhtbHRhZy4nfSddIC49 ICRkYXRhOw0KCQkJCQl9DQoJCQkJfSBlbHNlIHsNCgkJCQkJaWYgKCR0aGlzLT5leGlzdHMp IHsNCgkJCQkJCSR0aGlzLT54bWxkYXRhWyd7Jy4kdGhpcy0+eG1sdGFnLid9J10gLj0gJHRo aXMtPmNkZWxpbS4kZGF0YTsNCgkJCQkJfSBlbHNlIHsNCgkJCQkJCSR0aGlzLT54bWxkYXRh Wyd7Jy4kdGhpcy0+eG1sdGFnLid9J10gPSAkZGF0YTsNCgkJCQkJfQ0KCQkJCX0NCg0KCQkJ CS8vIENvcHkgdGhlIHRhZyB0byBhbnkgZHVwbGljYXRlIG5vZGVzDQoJCQkJaWYgKGFycmF5 X2tleV9leGlzdHMoJHRoaXMtPnhtbHRhZywgJHRoaXMtPnN1YmZpZWxkcykpIHsNCgkJCQkJ Zm9yZWFjaCgkdGhpcy0+c3ViZmllbGRzWyR0aGlzLT54bWx0YWddIGFzICRjb3B5ZmllbGQp IHsNCgkJCQkJCSR0aGlzLT54bWxkYXRhWyd7Jy4kY29weWZpZWxkLid9J10gPSAkdGhpcy0+ eG1sZGF0YVsneycuJHRoaXMtPnhtbHRhZy4nfSddOw0KCQkJCQl9DQoJCQkJfQ0KDQoJCQkJ Ly8gQ3JlYXRlIGFueSBhdHRyaWJ1dGUgbm9kZXMNCgkJCQlpZiAoJHRoaXMtPnhtbGF0dHMp IHsNCgkJCQkJZm9yZWFjaCAoJHRoaXMtPnhtbGF0dHMgYXMgJHhrZXkgPT4gJHh2YWwpIHsN CgkJCQkJCSR0aGlzLT54bWxkYXRhWyd7Jy4kdGhpcy0+eG1sdGFnLiR0aGlzLT5wZGVsaW0u JHhrZXkuJ30nXSA9ICR4dmFsOw0KCQkJCQl9DQoJCQkJfQ0KCQkJCSR0aGlzLT5pbmRhdGEg PSB0cnVlOw0KCQkJfQ0KCQl9DQoJfQ0KfQ0KDQovLyBDb252ZW5pZW5jZSBmdW5jdGlvbnMg dG8gY2hlY2sgaWYgdGhlcmUncyBhIHByZXYvbmV4dCBwYWdlIGRlZmluZWQuIENvdWxkIGFs c28gdXNlIHNtZF9pZg0KZnVuY3Rpb24gc21kX3htbF9pZl9wcmV2KCRhdHRzLCAkdGhpbmcp IHsNCglnbG9iYWwgJHNtZF94bWxfcGdpbmZvOw0KDQoJJHJlcyA9ICRzbWRfeG1sX3BnaW5m byAmJiAkc21kX3htbF9wZ2luZm9bJ3tzbWRfeG1sX3ByZXZwYWdlfSddICE9ICcnOw0KCXJl dHVybiBwYXJzZShFdmFsRWxzZShzdHJ0cigkdGhpbmcsICRzbWRfeG1sX3BnaW5mbyksICRy ZXMpKTsNCn0NCmZ1bmN0aW9uIHNtZF94bWxfaWZfbmV4dCgkYXR0cywgJHRoaW5nKSB7DQoJ Z2xvYmFsICRzbWRfeG1sX3BnaW5mbzsNCg0KCSRyZXMgPSAkc21kX3htbF9wZ2luZm8gJiYg JHNtZF94bWxfcGdpbmZvWyd7c21kX3htbF9uZXh0cGFnZX0nXSAhPSAnJzsNCglyZXR1cm4g cGFyc2UoRXZhbEVsc2Uoc3RydHIoJHRoaW5nLCAkc21kX3htbF9wZ2luZm8pLCAkcmVzKSk7 DQp9IjtzOjQ6InR5cGUiO3M6MToiMCI7czo1OiJvcmRlciI7czoxOiI1IjtzOjU6ImZsYWdz IjtzOjE6IjAiO3M6NDoiaGVscCI7czoyNzY5MDoiPGRpdiBpZD0ic21kX2hlbHAiPgoKCTxo MT5zbWRfeG1sPC9oMT4KCgk8cD5ZYW5rIGJpdHMgb3V0IG9mIGFueSBodW5rIG9mIDxzcGFu IGNsYXNzPSJjYXBzIj5YTUw8L3NwYW4+IGFuZCByZWZvcm1hdCBpdCB0byB5b3VyIG93biBu ZWVkcy4gR3JlYXQgZm9yIHB1bGxpbmcgZmVlZCBpbmZvIGludG8geW91ciBUZXh0cGF0dGVy biBzaXRlLCBmb3IgZXhhbXBsZSBmcm9tIGRlbGljaW91cy5jb20uPC9wPgoKCTxoMj5GZWF0 dXJlczwvaDI+CgoJPHVsPgoJCTxsaT5TcGVjaWZ5IHlvdXIgPHNwYW4gY2xhc3M9ImNhcHMi PlhNTDwvc3Bhbj4gZGF0YSBmcm9tIGFueSA8c3BhbiBjbGFzcz0iY2FwcyI+VVJMPC9zcGFu PiAmIzgyMTI7IGludGVybmFsIG9yIGV4dGVybmFsIHRvIDxzcGFuIGNsYXNzPSJjYXBzIj5U WFA8L3NwYW4+PC9saT4KCQk8bGk+U2VsZWN0aXZlbHkgZXh0cmFjdCBhbnkgaXRlbXMgaW4g eW91ciByZWNvcmQgc2V0PC9saT4KCQk8bGk+VXNlIGEgRm9ybSBvciB0aGUgcGx1Z2luIGNv bnRhaW5lciB0byBvdXRwdXQgZGF0YSB5b3UgaGF2ZSBleHRyYWN0ZWQ8L2xpPgoJCTxsaT48 c3BhbiBjbGFzcz0iY2FwcyI+WE1MPC9zcGFuPiB0YWcgYXR0cmlidXRlcyBhcmUgYXZhaWxh YmxlIGFzIHdlbGw8L2xpPgoJCTxsaT5TdXBwb3J0cyBwYWdpbmF0aW9uIG9mIHJlc3VsdHMg d2l0aCBsaW1pdC9vZmZzZXQ8L2xpPgoJPC91bD4KCgk8aDIgaWQ9ImF1dGhvciI+QXV0aG9y PC9oMj4KCgk8cD48YSBocmVmPSJodHRwOi8vc3RlZmRhd3Nvbi5jb20vY29udGFjdCI+U3Rl ZiBEYXdzb248L2E+LiBGb3Igb3RoZXIgc29mdHdhcmUgYnkgbWUsIG9yIHRvIG1ha2UgYSBk b25hdGlvbiwgc2VlIHRoZSA8YSBocmVmPSJodHRwOi8vc3RlZmRhd3Nvbi5jb20vc3ciPnNv ZnR3YXJlIHBhZ2U8L2E+LjwvcD4KCgk8aDIgaWQ9Imluc3RhbGwiPkluc3RhbGxhdGlvbiAv IFVuaW5zdGFsbGF0aW9uPC9oMj4KCgk8cCBjbGFzcz0icmVxdWlyZWQiPlJlcXVpcmVzIDxz cGFuIGNsYXNzPSJjYXBzIj5QSFA8L3NwYW4+IDUrPC9wPgoKCTxwPkRvd25sb2FkIHRoZSBw bHVnaW4gZnJvbSBlaXRoZXIgPGEgaHJlZj0iaHR0cDovL3RleHRwYXR0ZXJuLm9yZy9wbHVn aW5zLzExMzgvc21kX3htbCI+dGV4dHBhdHRlcm4ub3JnPC9hPiwgb3IgdGhlIHNvZnR3YXJl IHBhZ2UgYWJvdmUsIHBhc3RlIHRoZSBjb2RlIGludG8gdGhlIDxzcGFuIGNsYXNzPSJjYXBz Ij5UWFA8L3NwYW4+IEFkbWluIC0mZ3Q7IFBsdWdpbnMgcGFuZSwgaW5zdGFsbCBhbmQgZW5h YmxlIHRoZSBwbHVnaW4uIFZpc2l0IHRoZSA8YSBocmVmPSJodHRwOi8vZm9ydW0udGV4dHBh dHRlcm4uY29tL3ZpZXd0b3BpYy5waHA/aWQ9MzI3MTgiPmZvcnVtIHRocmVhZDwvYT4gZm9y IG1vcmUgaW5mbyBvciB0byByZXBvcnQgb24gdGhlIHN1Y2Nlc3Mgb3Igb3RoZXJ3aXNlIG9m IHRoZSBwbHVnaW4uPC9wPgoKCTxwPlRvIHJlbW92ZSB0aGUgcGx1Z2luLCBzaW1wbHkgZGVs ZXRlIGl0IGZyb20gdGhlIEFkbWluLSZndDtQbHVnaW5zIHRhYi48L3A+CgoJPGgyPlVzYWdl OiBzbWRfeG1sPC9oMj4KCgk8cD5QbGFjZSBhIDxjb2RlPiZsdDt0eHA6c21kX3htbCZndDs8 L2NvZGU+IHRhZyB3aGVyZSB5b3Ugd2lzaCB0byBwcm9jZXNzIDxzcGFuIGNsYXNzPSJjYXBz Ij5YTUw8L3NwYW4+IGRhdGEgJiM4MjEyOyB0aGlzIGNvdWxkIGJlIGZyb20gYSBmZWVkLiBT aW5jZSB0aGlzIHBsdWdpbiBpcyBiZXN0IGV4cGxhaW5lZCBieSBleGFtcGxlLCBhc3N1bWUg dGhlIGZvbGxvd2luZyA8c3BhbiBjbGFzcz0iY2FwcyI+WE1MPC9zcGFuPiBkb2N1bWVudCBp cyBwcmVzZW50ZWQgdG8gdGhlIHBsdWdpbjo8L3A+Cgo8cHJlIGNsYXNzPSJibG9jayI+PGNv ZGUgY2xhc3M9ImJsb2NrIj4mbHQ7ZW1wbG95ZWVzJmd0OwogICAmbHQ7ZW1wbG95ZWUmZ3Q7 CiAgICAgICZsdDtuYW1lIGlkPSZxdW90O3dpbGVfZV9jb3lvdGUmcXVvdDsmZ3Q7V2lsZSBF LiBDb3lvdGUmbHQ7L25hbWUmZ3Q7CiAgICAgICZsdDtqb2JfdGl0bGUmZ3Q7U2NoZW1lciZs dDsvam9iX3RpdGxlJmd0OwogICAgICAmbHQ7ZGVwdCZndDtBQ01FIGNvcnAmbHQ7L2RlcHQm Z3Q7CiAgICAgICZsdDtxdWFsaXR5Jmd0O0N1bm5pbmcmbHQ7L3F1YWxpdHkmZ3Q7CiAgICAg ICZsdDtxdWFsaXR5Jmd0O0RldmlvdXNuZXNzJmx0Oy9xdWFsaXR5Jmd0OwogICAgICAmbHQ7 cXVhbGl0eSZndDtQZXJzaXN0ZW5jZSZsdDsvcXVhbGl0eSZndDsKICAgJmx0Oy9lbXBsb3ll ZSZndDsKICAgJmx0O2VtcGxveWVlJmd0OwogICAgICAmbHQ7bmFtZSBpZD0mcXVvdDtyb2Fk X3J1bm5lciZxdW90OyZndDtSb2FkIFJ1bm5lciZsdDsvbmFtZSZndDsKICAgICAgJmx0O2pv Yl90aXRsZSZndDtTZWVkIGV4cGVydCZsdDsvam9iX3RpdGxlJmd0OwogICAgICAmbHQ7ZGVw dCZndDtFdmFzaW9uJmx0Oy9kZXB0Jmd0OwogICAgICAmbHQ7cXVhbGl0eSZndDtTcGVlZCZs dDsvcXVhbGl0eSZndDsKICAgICAgJmx0O3F1YWxpdHkmZ3Q7TWVlcCBtZWVwJmx0Oy9xdWFs aXR5Jmd0OwogICAmbHQ7L2VtcGxveWVlJmd0OwombHQ7L2VtcGxveWVlcyZndDsKPC9jb2Rl PjwvcHJlPgoKCTxoMz5BdHRyaWJ1dGVzOiA8Y29kZT5zbWRfeG1sPC9jb2RlPjwvaDM+CgoJ PHA+VXNlIHRoZSBmb2xsb3dpbmcgYXR0cmlidXRlcyB0byBjb25maWd1cmUgdGhlIHNtZF94 bWwgcGx1Z2luIChzaGFkZWQgYXR0cmlidXRlcyBhcmUgbWFuZGF0b3J5KSA6PC9wPgoKCTxo ND5EYXRhIGltcG9ydDwvaDQ+CgoJPHVsPgoJCTxsaT48c3BhbiBjbGFzcz0iYXRubSBtYW5k Ij5kYXRhPC9zcGFuPiA6IHRoZSA8c3BhbiBjbGFzcz0iY2FwcyI+WE1MPC9zcGFuPiBkYXRh IHNvdXJjZS4gTW9zdCBvZiB0aGUgdGltZSB0aGlzIHdpbGwgYmUgYSA8c3BhbiBjbGFzcz0i Y2FwcyI+VVJMPC9zcGFuPiwgdGhvdWdoIHlvdSBjb3VsZCBoYXJkLWNvZGUgdGhlIDxzcGFu IGNsYXNzPSJjYXBzIj5YTUw8L3NwYW4+IGRhdGEgb3QgdXNlIGFub3RoZXIgPHNwYW4gY2xh c3M9ImNhcHMiPlRYUDwvc3Bhbj4gdGFnIGhlcmUgKGUuZy4gPGNvZGU+Jmx0O3R4cDp2YXJp YWJsZSAvJmd0OzwvY29kZT4pPC9saT4KCQk8bGk+PHNwYW4gY2xhc3M9ImF0bm0gbWFuZCI+ cmVjb3JkPC9zcGFuPiA6IHRoZSBuYW1lIG9mIHRoZSA8c3BhbiBjbGFzcz0iY2FwcyI+WE1M PC9zcGFuPiB0YWcgdGhhdCBzdXJyb3VuZHMgZWFjaCByZWNvcmQgb2YgZGF0YSBpbiB5b3Vy IGZlZWQuIFRodXMgeW91IHdvdWxkIG5lZWQgPGNvZGU+cmVjb3JkPSZxdW90O2VtcGxveWVl JnF1b3Q7PC9jb2RlPiBpbiB0aGUgYWJvdmUgZG9jdW1lbnQ8L2xpPgoJCTxsaT48c3BhbiBj bGFzcz0iYXRubSBtYW5kIj5maWVsZHM8L3NwYW4+IDogbGlzdCBvZiA8c3BhbiBjbGFzcz0i Y2FwcyI+WE1MPC9zcGFuPiBmaWVsZHMgeW91IHdhbnQgdG8gZXh0cmFjdCBmcm9tIGVhY2gg cmVjb3JkLiBGb3IgZXhhbXBsZSwgPGNvZGU+ZmllbGRzPSZxdW90O25hbWUsIGRlcHQmcXVv dDs8L2NvZGU+LiBFYWNoIGZpZWxkIHlvdSBzcGVjaWZ5IGhlcmUgd2lsbCBjcmVhdGUgYSBz aW1pbGFybHktbmFtZWQgPGEgaHJlZj0iI3JlcHMiPnJlcGxhY2VtZW50IHRhZzwvYT4gdGhh dCB5b3UgbWF5IHVzZSBpbiB5b3VyIGZvcm0vY29udGFpbmVyIHRvIGRpc3BsYXkgdGhlIHJl bGV2YW50IHBpZWNlIG9mIGRhdGEuIEluIHRoaXMgY2FzZSwgPGNvZGU+e25hbWV9PC9jb2Rl PiBhbmQgPGNvZGU+e2RlcHR9PC9jb2RlPiB3b3VsZCBiZSBhdmFpbGFibGUgaW4geW91ciBv dXRwdXQuIFlvdSBtYXkgYWxzbyBleHRyYWN0IG11bHRpcGxlIGNvcGllcyBvZiB0aGUgc2Ft ZSBmaWVsZCBieSBzZXBhcmF0aW5nIHRoZSBuYW1lIG9mIHRoZSBmaWVsZCYjODIxNztzIGNv cHkgd2l0aCA8Y29kZT5wYXJhbV9kZWxpbTwvY29kZT4uIEZvciBleGFtcGxlOiA8Y29kZT5m aWVsZHM9JnF1b3Q7cHViRGF0ZSwgdGl0bGV8dXJsX3R0bCwgaWQsIGxpbmsmcXVvdDs8L2Nv ZGU+IHdvdWxkIGV4dHJhY3QgdGl0bGUgdHdpY2U6IG9uY2UgYXMgPGNvZGU+e3RpdGxlfTwv Y29kZT4gYW5kIGFnYWluIGFzIDxjb2RlPnt1cmxfdHRsfTwvY29kZT4uIFNlZSA8YSBocmVm PSIjZWc2Ij5leGFtcGxlIDY8L2E+IGZvciBhIHByYWN0aWNhbCBhcHBsaWNhdGlvbiBvZiB0 aGlzPC9saT4KCQk8bGk+PHNwYW4gY2xhc3M9ImF0bm0iPnNraXA8L3NwYW4+IDogbGlzdCBv ZiA8c3BhbiBjbGFzcz0iY2FwcyI+WE1MPC9zcGFuPiBmaWVsZHMgeW91IHdhbnQgdG8gc2tp cCBvdmVyIGluIGVhY2ggcmVjb3JkLiBVc2VmdWwgaWYgYSBmaWVsZCB5b3Ugd2lzaCB0byBl eHRyYWN0IGlzIHVzZWQgaW4gdHdvIHBsYWNlcyBpbiB0aGUgc2FtZSByZWNvcmQuIFNlZSA8 YSBocmVmPSIjZWcyIj5leGFtcGxlIDI8L2E+IGZvciBhIHByYWN0aWNhbCBhcHBsaWNhdGlv bjwvbGk+CgkJPGxpPjxzcGFuIGNsYXNzPSJhdG5tIj5kZWZhdWx0czwvc3Bhbj4gOiBsaXN0 IG9mIGRlZmF1bHQgdmFsdWVzIHlvdSB3aXNoIHRvIHNldCBpZiBhbnkgPGNvZGU+ZmllbGRz PC9jb2RlPiBhcmUgbm90IHNldCBpbiB5b3VyIGRvY3VtZW50LiBTcGVjaWZ5IGRlZmF1bHRz IGluIHBhaXJzIG9mIGVudHJpZXMgbGlrZSB0aGlzOiA8Y29kZT5kZWZhdWx0cz0mcXVvdDtm aWVsZHxkZWZhdWx0LCBmaWVsZHxkZWZhdWx0LCAuLi4mcXVvdDs8L2NvZGU+LiBUaGUgcGlw ZSBjYW4gYmUgYWx0ZXJlZCBieSA8Y29kZT5wYXJhbV9kZWxpbTwvY29kZT48L2xpPgoJCTxs aT48c3BhbiBjbGFzcz0iYXRubSI+c2V0X2VtcHR5PC9zcGFuPiA6IGFueSBmaWVsZHMgdGhh dCBhcmUgbm90IHNldCBpbiB5b3VyIGRvY3VtZW50IHdpbGwgbm9ybWFsbHkgbWVhbiB0aGF0 IHlvdSYjODIxNztsbCBzZWUgdGhlIHJhdyA8Y29kZT57cmVwbGFjZW1lbnQgdGFnfTwvY29k ZT4gaW4geW91ciBvdXRwdXQuIFVzZSA8Y29kZT5zZXRfZW1wdHk9JnF1b3Q7MSZxdW90Ozwv Y29kZT4gdG8gZW5zdXJlIHRoYXQgYWxsIGVtcHR5IG5vZGVzIGFyZSBzZXQgdG8gYW4gZW1w dHkgdmFsdWUuIEFueSA8Y29kZT5kZWZhdWx0czwvY29kZT4geW91IHNwZWNpZnkgd2lsbCB0 YWtlIHByZWNlZGVuY2Ugb3ZlciBlbXB0aWVzPC9saT4KCQk8bGk+PHNwYW4gY2xhc3M9ImF0 bm0iPmNhY2hlX3RpbWU8L3NwYW4+IDogaWYgc2V0LCB0aGUgPHNwYW4gY2xhc3M9ImNhcHMi PlhNTDwvc3Bhbj4gZG9jdW1lbnQgaXMgY2FjaGVkIGluIHRoZSA8c3BhbiBjbGFzcz0iY2Fw cyI+VFhQPC9zcGFuPiBwcmVmcy4gU3Vic2VxdWVudCBjYWxscyB0byBzbWRfeG1sIChlLmcu IHJlZnJlc2hpbmcgdGhlIHBhZ2UpIHdpbGwgcmVhZCB0aGUgY2FjaGVkIGluZm9ybWF0aW9u IGluc3RlYWQgb2YgaGl0dGluZyB0aGUgPGNvZGU+ZGF0YTwvY29kZT4gPHNwYW4gY2xhc3M9 ImNhcHMiPlVSTDwvc3Bhbj4sIHRodXMgY3V0dGluZyBkb3duIG9uIG5ldHdvcmsgdHJhZmZp Yy4gQWZ0ZXIgPGNvZGU+Y2FjaGVfdGltZTwvY29kZT4gJiM4MjEyOyBzcGVjaWZpZWQgaW4g c2Vjb25kcyAmIzgyMTI7IGhhcyBlbGFwc2VkLCB0aGUgbmV4dCBwYWdlIHJlZnJlc2ggd2ls bCBjYXVzZSB0aGUgZG9jdW1lbnQgdG8gYmUgZmV0Y2hlZCBmcm9tIHRoZSA8Y29kZT5kYXRh PC9jb2RlPiA8c3BhbiBjbGFzcz0iY2FwcyI+VVJMPC9zcGFuPiBhZ2Fpbi4gWW91IG1heSwg aG93ZXZlciwgZm9yY2UgYSByZWZyZXNoIGZyb20gdGhlIGRhdGEgPHNwYW4gY2xhc3M9ImNh cHMiPlVSTDwvc3Bhbj4gYXQgYW55IHRpbWUgYnkgYWRkaW5nIDxjb2RlPiZhbXA7Zm9yY2Vf cmVhZD0xPC9jb2RlPiB0byB0aGUgYnJvd3NlciA8c3BhbiBjbGFzcz0iY2FwcyI+VVJMPC9z cGFuPiAoeW91IGNhbiB1c2Ugc21kX3ByZWZhbGl6ZXIgYW5kIHNlYXJjaCBmb3IgJiM4MjE2 O3NtZF94bWwmIzgyMTc7IHRvIGZpbmQgdGhlIGNhY2hlZCBkb2N1bWVudHMgJiM4MjEyOyBl YWNoIGlzIHJlZmVyZW5jZWQgYnkgaXRzIHVuaXF1ZSBJRCk8L2xpPgoJPC91bD4KCgk8aDQ+ TWFuaXB1bGF0aW9uPC9oND4KCgk8dWw+CgkJPGxpPjxzcGFuIGNsYXNzPSJhdG5tIj5mb3Jt YXQ8L3NwYW4+IDogYWx0ZXIgdGhlIGZvcm1hdCBvZiB0aGlzIGxpc3Qgb2YgZmllbGRzLiBG b3IgZWFjaCBmaWVsZCwgc3BlY2lmeSBpdGVtcyBzZXBhcmF0ZWQgYnkgPGNvZGU+cGFyYW1f ZGVsaW08L2NvZGU+OyB0aGUgZmlyc3QgaXMgdGhlIG5hbWUgb2YgdGhlIGZpZWxkIHlvdSB3 YW50IHRvIGFsdGVyLCB0aGUgMm5kIGlzIHRoZSB0eXBlIG9mIGFsdGVyYXRpb24gcmVxdWly ZWQsIGFuZCB0aGUgM3JkfDR0aHw1dGh8Li4gc3BlY2lmeSBob3cgeW91IHdhbnQgdG8gYWx0 ZXIgdGhlIGRhdGEuIFRoZSBmb2xsb3dpbmcgZGF0YSB0eXBlcyBhcmUgc3VwcG9ydGVkOgoJ PHVsPgoJCTxsaT48c3BhbiBjbGFzcz0iYXRubSI+ZGF0ZTwvc3Bhbj4gOiB0YWtlcyBvbmUg YXJndW1lbnQ7IHRoZSBmb3JtYXQgc3RyaW5nIGFzIGRldGFpbGVkIGluIDxhIGhyZWY9Imh0 dHA6Ly9waHAubmV0L21hbnVhbC9lbi9mdW5jdGlvbi5zdHJmdGltZS5waHAiPnN0cmZ0aW1l PC9hPi4gRXhhbXBsZTogPGNvZGU+Zm9ybWF0PSZxdW90O3B1YkRhdGV8ZGF0ZXwlZCAlQiAl WSAlSDolSTolUyZxdW90OzwvY29kZT4gd291bGQgcmVmb3JtYXQgdGhlIHB1YkRhdGUgZmll bGQuIENhbiBhbHNvIGJlIHVzZWQgdG8gcmVmb3JtYXQgdGltZSBzdHJpbmdzPC9saT4KCQk8 bGk+PHNwYW4gY2xhc3M9ImF0bm0iPmxpbms8L3NwYW4+IDogY29udmVydCB0aGUgPHNwYW4g Y2xhc3M9ImNhcHMiPlVSTDwvc3Bhbj4gaW4gdGhpcyBmaWVsZCB0byBhbiA8c3BhbiBjbGFz cz0iY2FwcyI+SFRNTDwvc3Bhbj4gYW5jaG9yIGh5cGVybGluay4gRXhhbXBsZTogPGNvZGU+ Zm9ybWF0PSZxdW90O2NhdF91cmx8bGluayZxdW90OzwvY29kZT4uIFJlcGxhY2VzIHRoZSA8 Y29kZT5saW5raWZ5PC9jb2RlPiBhdHRyaWJ1dGUgZnJvbSB0aGUgdjAuMnggdmVyc2lvbnM8 L2xpPgoJCTxsaT48c3BhbiBjbGFzcz0iYXRubSI+ZXNjYXBlPC9zcGFuPiA6IGVzY2FwZSB0 aGUgZmllbGQgc28gaXQgY2FuIGJlIHVzZWQgaW4gYW4gPHNwYW4gY2xhc3M9ImNhcHMiPlNR TDwvc3Bhbj4gc3RhdGVtZW50PC9saT4KCQk8bGk+PHNwYW4gY2xhc3M9ImF0bm0iPnNhbml0 aXplPC9zcGFuPiA6IGNvbnZlcnQgdGhlIGZpZWxkIGludG8gb25lIG9mIHRocmVlICYjODIx NjtkdW1lZCBkb3duJiM4MjE3OyBmb3JtYXRzLCBhcyBzcGVjaWZpZWQgYnkgdGhlIHRoaXJk IHBhcmFtZXRlci4gQ2hvb3NlIGZyb20gPGNvZGU+dXJsPC9jb2RlPiBmb3IgY3JlYXRpbmcg c2ltcGxlLCB2YWxpZCA8c3BhbiBjbGFzcz0iY2FwcyI+VVJMPC9zcGFuPiBzdHJpbmdzOyA8 Y29kZT5maWxlPC9jb2RlPiBmb3IgY3JlYXRpbmcgdmFsaWQgZmlsZSBuYW1lcywgb3IgPGNv ZGU+dXJsX3RpdGxlPC9jb2RlPiBmb3IgbWFraW5nIDxzcGFuIGNsYXNzPSJjYXBzIj5UWFA8 L3NwYW4+LXN0eWxlIDxzcGFuIGNsYXNzPSJjYXBzIj5VUkw8L3NwYW4+IHRpdGxlcyBhcyBn b3Zlcm5lZCBieSB5b3VyIHByZWZzIHNldHRpbmdzLiBFeGFtcGxlOiA8Y29kZT5mb3JtYXQ9 JnF1b3Q7VGl0bGV8c2FuaXRpemV8dXJsJnF1b3Q7PC9jb2RlPjwvbGk+CgkJPGxpPjxzcGFu IGNsYXNzPSJhdG5tIj5jYXNlPC9zcGFuPiA6IGFsdGVyIHRoZSBjYXNlIG9mIHRoZSBmaWVs ZC4gQ2hvb3NlIGZyb20gb25lIG9mIGZvdXIgb3B0aW9ucyBhcyB0aGUgdGhpcmQsIGZvdXJ0 aCwgZXRjIHBhcmFtZXRlcnM6IDxjb2RlPnVwcGVyPC9jb2RlPiwgPGNvZGU+bG93ZXI8L2Nv ZGU+LCA8Y29kZT51Y2ZpcnN0PC9jb2RlPiwgPGNvZGU+dWN3b3JkczwvY29kZT4uIFRoZSBp dGVtcyBtYXkgYmUgY3VtdWxhdGl2ZSwgZm9yIGV4YW1wbGUgdG8gZmlyc3QgY29udmVydCB0 aGUgZmllbGQgdG8gbG93ZXIgY2FzZSB0aGVuIGNvbnZlcnQgdGhlIGZpcnN0IGxldHRlciBv ZiBlYWNoIHdvcmQgdG8gdXBwZXIgY2FzZSwgc3BlY2lmeSA8Y29kZT5mb3JtYXRzPSZxdW90 O0NvdW50cnl8Y2FzZXxsb3dlcnx1Y3dvcmRzJnF1b3Q7PC9jb2RlPjwvbGk+Cgk8L3VsPjwv bGk+CgkJPGxpPjxzcGFuIGNsYXNzPSJhdG5tIj50YXJnZXRfZW5jPC9zcGFuPiA6IGNoYXJh Y3RlciBlbmNvZGluZyB0byBhcHBseSB0byB0aGUgcGFyc2VkIDxzcGFuIGNsYXNzPSJjYXBz Ij5YTUw8L3NwYW4+IGRhdGEuIENob29zZSBmcm9tIDxjb2RlPklTTy04ODU5LTE8L2NvZGU+ LCA8Y29kZT5VUy1BU0NJSTwvY29kZT4sIG9yIDxjb2RlPlVURi04PC9jb2RlPi4gRGVmYXVs dDogPGNvZGU+VVRGLTg8L2NvZGU+PC9saT4KCQk8bGk+PHNwYW4gY2xhc3M9ImF0bm0iPnVw cGVyY2FzZTwvc3Bhbj4gOiBzZXQgdG8gMSB0byBmb3JjZSBhbGwgPHNwYW4gY2xhc3M9ImNh cHMiPlhNTDwvc3Bhbj4gdGFnIG5hbWVzIHRvIGJlIGluIHVwcGVyIGNhc2UsIHRodXMgeW91 IHdvdWxkIGhhdmUgdG8gc3BlY2lmeSA8Y29kZT5maWVsZHM9JnF1b3Q7TkFNRSwgREVQVCZx dW90OzwvY29kZT4gaW4gb3JkZXIgdG8gc3VjY2Vzc2Z1bGx5IGV4dHJhY3QgdGhvc2UgZmll bGRzPC9saT4KCQk8bGk+PHNwYW4gY2xhc3M9ImF0bm0iPmNvbmNhdDwvc3Bhbj4gOiBhbnkg ZHVwbGljYXRlIHRhZ3MgaW4gdGhlIHN0cmVhbSBhcmUgdXN1YWxseSBjb25jYXRlbmF0ZWQg dG9nZXRoZXIuIElmIHlvdSB3aXNoIHRvIHR1cm4gdGhpcyBmZWF0dXJlIG9mZiBzbyB0aGF0 IG9ubHkgdGhlIGxhc3QgdGFnJiM4MjE3O3MgY29udGVudCByZW1haW5zLCBzZXQgPGNvZGU+ Y29uY2F0PSZxdW90OzAmcXVvdDs8L2NvZGU+LiBEZWZhdWx0OiAxPC9saT4KCQk8bGk+PHNw YW4gY2xhc3M9ImF0bm0iPmNvbnZlcnQ8L3NwYW4+IDogaWYgeW91ciBkYXRhIHN0cmVhbSBj b250YWlucyBkYXRhIHlvdSBkb24mIzgyMTc7dCB3YW50IG9yIGRhdGEgdGhhdCB5b3Ugd2lz aCB0byB0cmFuc2xhdGUgKGZvciBleGFtcGxlLCBjaGFyYWN0ZXIgZW50aXRpZXMpIHlvdSBj YW4gbGlzdCB0aGVtIGhlcmUuIEl0ZW1zIGFyZSBzcGVjaWZpZWQgaW4gcGFpcnMgc2VwYXJh dGVkIGJ5IDxjb2RlPnBhcmFtX2RlbGltPC9jb2RlPjsgdGhlIGZpcnN0IGlzIHRoZSBpdGVt IHRvIHNlYXJjaCBmb3IgYW5kIHRoZSBzZWNvbmQgaXMgaXRzIHJlcGxhY2VtZW50LiBGb3Ig ZXhhbXBsZTogPGNvZGU+Y29udmVydD0mcXVvdDsmYW1wO2FtcDsjMDM5fCYjMzk7JnF1b3Q7 PC9jb2RlPiB3b3VsZCByZXBsYWNlIGFsbCBvY2N1cnJlbmNlcyBvZiA8Y29kZT4mYW1wO2Ft cDsjMDM5PC9jb2RlPiB3aXRoIGFuIGFwb3N0cm9waGUgY2hhcmFjdGVyLiBOb3RlIHRoYXQg dGhlIHJlcGxhY2VtZW50cyBhcmUgcGVyZm9ybWVkIG9uIHRoZSByYXcgc3RyZWFtIDxlbT5i ZWZvcmU8L2VtPiBpdCBpcyBwYXJzZWQgYW5kIDxlbT5hZnRlcjwvZW0+IGl0IGlzIGNhY2hl ZC4gQWxzbyB0YWtlIGNhcmUgd2hlbiBkZWNvZGluZyBkb3VibGUgcXVvdGVzOyB0aGlzIGlz IHRoZSBjb3JyZWN0IG1ldGhvZDogPGNvZGU+Y29udmVydD0mcXVvdDsmYW1wO2FtcDtxdW90 O3wmcXVvdDsmcXVvdDsmcXVvdDs8L2NvZGU+IChub3RlIHRoZSBkb3VibGUgcXVvdGUgaXMg ZXNjYXBlZCBieSBwdXR0aW5nIDxlbT50d288L2VtPiBkb3VibGUgcXVvdGUgY2hhcmFjdGVy cyBpbik8L2xpPgoJPC91bD4KCgk8aDQ+Rm9ybXMgYW5kIHBhZ2luZzwvaDQ+CgoJPHVsPgoJ CTxsaT48c3BhbiBjbGFzcz0iYXRubSI+Zm9ybTwvc3Bhbj4gOiB0aGUgPHNwYW4gY2xhc3M9 ImNhcHMiPlRYUDwvc3Bhbj4gRm9ybSB3aXRoIHdoaWNoIHRvIHBhcnNlIGVhY2ggcmVjb3Jk LiBZb3UgbWF5IHVzZSB0aGUgcGx1Z2luIGFzIGEgY29udGFpbmVyIGluc3RlYWQgaWYgeW91 IHByZWZlcjwvbGk+CgkJPGxpPjxzcGFuIGNsYXNzPSJhdG5tIj5wYWdlZm9ybTwvc3Bhbj4g OiBvcHRpb25hbCA8c3BhbiBjbGFzcz0iY2FwcyI+VFhQPC9zcGFuPiBmb3JtIHVzZWQgdG8g c3BlY2lmeSB0aGUgbGF5b3V0IG9mIGFueSBwYWdpbmcgbmF2aWdhdGlvbiBhbmQgc3RhdGlz dGljcyBzdWNoIGFzIHBhZ2UgbnVtYmVyLCBxdWFudGl0eSBvZiByZWNvcmRzIHBlciBwYWdl LCB0b3RhbCBudW1iZXIgb2YgcmVjb3JkcywgZXRjLiBTZWUgPGEgaHJlZj0iI3BncmVwcyI+ cGFnaW5nIHJlcGxhY2VtZW50IHRhZ3M8L2E+PC9saT4KCQk8bGk+PHNwYW4gY2xhc3M9ImF0 bm0iPnBhZ2Vwb3M8L3NwYW4+IDogdGhlIHBvc2l0aW9uIG9mIHRoZSBwYWdpbmcgaW5mb3Jt YXRpb24uIE9wdGlvbnMgYXJlIDxjb2RlPmJlbG93PC9jb2RlPiAodGhlIGRlZmF1bHQpLCA8 Y29kZT5hYm92ZTwvY29kZT4sIG9yIGJvdGggb2YgdGhlbSBzZXBhcmF0ZWQgYnkgPGNvZGU+ ZGVsaW08L2NvZGU+PC9saT4KCQk8bGk+PHNwYW4gY2xhc3M9ImF0bm0iPmxpbWl0PC9zcGFu PiA6IHNob3cgdGhpcyBtYW55IHJlc3VsdHMgcGVyIHBhZ2UuIFNldHRpbmcgYSA8Y29kZT5s aW1pdDwvY29kZT4gc21hbGxlciB0aGFuIHRoZSB0b3RhbCBudW1iZXIgb2YgcmVjb3JkcyBz d2l0Y2hlcyBwYWdpbmcgb24gYXV0b21hdGljYWxseSBzbyB5b3UgY2FuIHVzZSB0aGUgPGNv ZGU+Jmx0O3R4cDpvbGRlciAvJmd0OzwvY29kZT4gYW5kIDxjb2RlPiZsdDt0eHA6bmV3ZXIg LyZndDs8L2NvZGU+IHRhZ3MgaW5zaWRlIHlvdXIgPGNvZGU+cGFnZWZvcm08L2NvZGU+IHRv IHN0ZXAgdGhyb3VnaCBlYWNoIHBhZ2Ugb2YgcmVzdWx0cy4gWW91IG1heSBhbHNvIGNvbnN0 cnVjdCB5b3VyIG93biBwYWdpbmcgKHNlZSA8YSBocmVmPSIjZWczIj5leGFtcGxlIDM8L2E+ KTwvbGk+CgkJPGxpPjxzcGFuIGNsYXNzPSJhdG5tIj5vZmZzZXQ8L3NwYW4+IDogc2tpcCB0 aGlzIG1hbnkgcm93cyBiZWZvcmUgb3V0cHV0dGluZyB0aGUgcmVzdWx0cy4gSWYgeW91IHNw ZWNpZnkgYSBuZWdhdGl2ZSA8Y29kZT5vZmZzZXQ8L2NvZGU+IHlvdSBzdGFydCB0aGF0IG1h bnkgcmVjb3JkcyBmcm9tIHRoZSBlbmQgb2YgdGhlIGRvY3VtZW50PC9saT4KCQk8bGk+PHNw YW4gY2xhc3M9ImF0bm0iPnBhZ2V2YXI8L3NwYW4+IDogaWYgeW91IGFyZSBwdXR0aW5nIHNt ZF94bWwgb24gdGhlIHNhbWUgcGFnZSBhcyBhIHN0YW5kYXJkIGFydGljbGUgbGlzdCwgdGhl IGJ1aWx0LWluIG5ld2VyIGFuZCBvbGRlciB0YWdzIHdpbGwgY2xhc2ggd2l0aCB0aG9zZSBv ZiBzbWRfeG1sOyBjbGlja2luZyBuZXh0L3ByZXYgd2lsbCBzdGVwIHRocm91Z2ggYm90aCB5 b3VyIHJlc3VsdCBzZXQgYW5kIHlvdXIgYXJ0aWNsZSBsaXN0LiBTcGVjaWZ5IGEgZGlmZmVy ZW50IHZhcmlhYmxlIG5hbWUgaGVyZSBzbyB0aGUgdHdvIGxpc3RzIGNhbiBiZSBuYXZpZ2F0 ZWQgaW5kZXBlbmRlbnRseSwgZS5nLiA8Y29kZT5wYWdldmFyPSZxdW90O3hwYWdlJnF1b3Q7 PC9jb2RlPi4gTm90ZSB0aGF0IGlmIHlvdSBjaGFuZ2UgdGhpcywgeW91IHdpbGwgaGF2ZSB0 byBnZW5lcmF0ZSB5b3VyIG93biBjdXN0b20gbmV3ZXIvb2xkZXIgbGlua3MgKHNlZSA8YSBo cmVmPSIjZWc0Ij5leGFtcGxlIDQ8L2E+KSBhbmQgdGhlIDxhIGhyZWY9IiNzbWRfeGlmIj5j b25kaXRpb25hbCB0YWdzPC9hPi4gVGhlcmUgaXMgYWxzbyBhIHNwZWNpYWwgdmFsdWUgPGNv ZGU+U01EX1hNTF9VTklRVUVfSUQ8L2NvZGU+IHdoaWNoIGFzc2lnbnMgdGhlIHRhZ3MmIzgy MTc7IHVuaXF1ZSBJRCBhcyB0aGUgcGFnaW5nIHZhcmlhYmxlLiBTZWUgPGEgaHJlZj0iI2Vn NSI+ZXhhbXBsZSA1PC9hPiBmb3IgbW9yZS4gRGVmYXVsdDogPGNvZGU+cGc8L2NvZGU+PC9s aT4KCTwvdWw+CgoJPGg0PlRhZy9jbGFzcy9mb3JtYXR0aW5nIGF0dHJpYnV0ZXM8L2g0PgoK CTx1bD4KCQk8bGk+PHNwYW4gY2xhc3M9ImF0bm0iPndyYXB0YWc8L3NwYW4+IDogdGhlIChY KUhUTUwgdGFnLCB3aXRob3V0IGJyYWNrZXRzLCB0byBzdXJyb3VuZCBlYWNoIHJlY29yZCB5 b3Ugb3V0cHV0PC9saT4KCQk8bGk+PHNwYW4gY2xhc3M9ImF0bm0iPmJyZWFrPC9zcGFuPiA6 IHRoZSAoWClIVE1MIHRhZywgd2l0aG91dCBicmFja2V0cywgdG8gc3Vycm91bmQgZWFjaCBm aWVsZCB5b3Ugb3V0cHV0PC9saT4KCQk8bGk+PHNwYW4gY2xhc3M9ImF0bm0iPmNsYXNzPC9z cGFuPiA6IHRoZSA8c3BhbiBjbGFzcz0iY2FwcyI+Q1NTPC9zcGFuPiBjbGFzcyBuYW1lIHRv IGFwcGx5IHRvIHRoZSA8Y29kZT53cmFwdGFnPC9jb2RlPjwvbGk+Cgk8L3VsPgoKCTxoND5Q bHVnaW4gY3VzdG9taXNhdGlvbjwvaDQ+CgoJPHVsPgoJCTxsaT48c3BhbiBjbGFzcz0iYXRu bSI+ZGVsaW08L3NwYW4+IDogdGhlIGRlbGltaXRlciB0byB1c2UgYmV0d2VlbiBpdGVtcyBp biB0aGUgcGx1Z2luIGF0dHJpYnV0ZXMuIERlZmF1bHQ6IGNvbW1hPC9saT4KCQk8bGk+PHNw YW4gY2xhc3M9ImF0bm0iPnBhcmFtX2RlbGltPC9zcGFuPiA6IHRoZSBkZWxpbWl0ZXIgdG8g dXNlIGJldHdlZW4gaXRlbXMgaW4gPHNwYW4gY2xhc3M9ImNhcHMiPlhNTDwvc3Bhbj4gYW5k IHBsdWdpbiBkYXRhIGF0dHJpYnV0ZXMuIERlZmF1bHQ6IHBpcGUgKHwpPC9saT4KCQk8bGk+ PHNwYW4gY2xhc3M9ImF0bm0iPmNvbmNhdF9kZWxpbTwvc3Bhbj4gOiB0aGUgZGVsaW1pdGVy IHRvIHVzZSBiZXR3ZWVuIGlkZW50aWNhbGx5LW5hbWVkIHRhZ3MgaW4gdGhlIDxzcGFuIGNs YXNzPSJjYXBzIj5YTUw8L3NwYW4+IGRhdGEgc3RyZWFtLiBEZWZhdWx0OiBzcGFjZTwvbGk+ CgkJPGxpPjxzcGFuIGNsYXNzPSJhdG5tIj50cmFuc3BvcnQ8L3NwYW4+IDogKHNob3VsZCBu b3QgYmUgbmVlZGVkKSBpZiB5b3Ugd291bGQgbGlrZSB0byBmb3JjZSB0aGUgcGx1Z2luIHRv IHVzZSBhIHBhcnRpY3VsYXIgPHNwYW4gY2xhc3M9ImNhcHMiPkhUVFA8L3NwYW4+IHRyYW5z cG9ydCBtZWNoYW5pc20gdG8gZmV0Y2ggeW91ciA8Y29kZT5kYXRhPC9jb2RlPiB5b3UgY2Fu IHNwZWNpZnkgaXQgaGVyZS4gQ2hvb3NlIGZyb20gPGNvZGU+ZnNvY2s8L2NvZGU+IG9yIDxj b2RlPmN1cmw8L2NvZGU+LiBEZWZhdWx0OiA8Y29kZT5mc29jazwvY29kZT48L2xpPgoJCTxs aT48c3BhbiBjbGFzcz0iYXRubSI+bGluZV9sZW5ndGg8L3NwYW4+IDogaWYgeW91IGFyZSB1 c2luZyB0aGUgPGNvZGU+ZnNvY2s8L2NvZGU+IHRyYW5zcG9ydCBtZWNoYW5pc20sIHRoZSBw bHVnaW4gZ3JhYnMgdGhlIDxzcGFuIGNsYXNzPSJjYXBzIj5YTUw8L3NwYW4+IGRvY3VtZW50 IGxpbmUgYnkgbGluZSBhbmQgdXNlcyBhIG1heGltdW0gbGluZSBsZW5ndGggb2YgODE5MiBj aGFyYWN0ZXJzIGJ5IGRlZmF1bHQuIFRoaXMgaXMgdXN1YWxseSBnb29kIGVub3VnaCBiZWNh dXNlIG1vc3QgZmVlZHMgY29udGFpbiBuZXdsaW5lcywgYnV0IHNvbWUgKGUuZy4gR29vZ2xl IFNwcmVhZHNoZWV0KSBkb24mIzgyMTc7dCBoYXZlIGFueSBuZXdsaW5lcyBpbiB0aGVtLiBU byBzdWNjZXNzZnVsbHkgcGFyc2Ugc3VjaCBkb2N1bWVudHMgeW91IG1heSBuZWVkIHRvIGlu Y3JlYXNlIHRoZSBsaW5lIGxlbmd0aC4gSW4gdGhlc2Ugc2l0dWF0aW9ucywgaG93ZXZlciwg aXQgaXMgaGlnaGx5IHJlY29tbWVuZGVkIHRvIHN3aXRjaCB0byA8Y29kZT50cmFuc3BvcnQ9 JnF1b3Q7Y3VybCZxdW90OzwvY29kZT4gaW5zdGVhZCAoaWYgeW91IGNhbikgYmVjYXVzZSBp dCBkb2VzIG5vdCBoYXZlIGFueSBsaW5lIGxlbmd0aCByZXN0cmljdGlvbnM8L2xpPgoJCTxs aT48c3BhbiBjbGFzcz0iYXRubSI+aGFzaHNpemU8L3NwYW4+IDogKHNob3VsZCBub3QgYmUg bmVlZGVkKSB3aGVuIHNwZWNpZnlpbmcgYSA8Y29kZT5jYWNoZV90aW1lPC9jb2RlPiB0aGUg cGx1Z2luIGFzc2lnbnMgYSAzMi1jaGFyYWN0ZXIsIHVuaXF1ZSByZWZlcmVuY2UgdG8gdGhl IGN1cnJlbnQgc21kX3htbCBiYXNlZCBvbiB5b3VyIGltcG9ydCBhdHRyaWJ1dGVzLiA8Y29k ZT5oYXNoc2l6ZTwvY29kZT4gZ292ZXJucyB0aGUgbWVjaGFuaXNtIGZvciBtYWtpbmcgdGhp cyBsb25nIHJlZmVyZW5jZSBzaG9ydGVyLiBJdCBjb21wcmlzZXMgdHdvIG51bWJlcnMgc2Vw YXJhdGVkIGJ5IGEgY29sb247IHRoZSBmaXJzdCBpcyB0aGUgbGVuZ3RoIG9mIHRoZSB1bmlx ZSBJRCwgdGhlIHNlY29uZCBpcyBob3cgbWFueSBjaGFyYWN0ZXJzIHRvIHNraXAgcGFzdCBl YWNoIHRpbWUgYSBjaGFyYWN0ZXIgaXMgY2hvc2VuLiBGb3IgZXhhbXBsZSwgaWYgdGhlIHVu aXF1ZV9yZWZlcmVuY2Ugd2FzIDxjb2RlPjBjZjI4NTg3OWJmOWQ2YjgxMjUzOWViNzQ4ZmJj OGY2PC9jb2RlPiB0aGVuIDxjb2RlPmhhc2hzaXplPSZxdW90OzY6NSZxdW90OzwvY29kZT4g d291bGQgbWFrZSBhIDYtY2hhcmFjdGVyIHVuaXF1ZSBJRCB1c2luZyBldmVyeSA1dGggY2hh cmFjdGVyOyBpbiBvdGhlciB3b3JkcyA8Y29kZT4wNWY4OTg8L2NvZGU+LiBJZiBhdCBhbnkg dGltZSwgeW91ICYjODIyMDtmYWxsIG9mZiYjODIyMTsgdGhlIGVuZCBvZiB0aGUgbG9uZyBz dHJpbmcsIHRoZSBwbHVnaW4gd3JhcHMgYmFjayB0byB0aGUgYmVnaW5uaW5nIG9mIHRoZSBz dHJpbmcgYW5kIGNvbnRpbnVlcyBjb3VudGluZy4gRGVmYXVsdDogPGNvZGU+Njo1PC9jb2Rl PjwvbGk+Cgk8L3VsPgoKCTxoMyBpZD0icmVwcyI+UmVwbGFjZW1lbnQgdGFnczwvaDM+CgoJ PHA+RWFjaCA8c3BhbiBjbGFzcz0iY2FwcyI+WE1MPC9zcGFuPiBmaWVsZCB5b3UgZXh0cmFj dCBmcm9tIHlvdXIgZGF0YSBzdHJlYW0gaGFzIGFuIGVxdWl2YWxlbnRseS1uYW1lZCByZXBs YWNlbWVudCB0YWcgYXZhaWxhYmxlIHNvIHlvdSBtYXkgdXNlIGl0IGFueXdoZXJlIHlvdSBs aWtlIGluIHlvdXIgRm9ybS9jb250YWluZXIuIFNvLCBpZiB5b3UgY2hvc2UgdG8gZXh0cmFj dCA8Y29kZT5maWVsZHM9JnF1b3Q7bmFtZSwgam9iX3RpdGxlLCBxdWFsaXR5JnF1b3Q7PC9j b2RlPiB5b3Ugd291bGQgaGF2ZSB0aGUgZm9sbG93aW5nIHJlcGxhY2VtZW50IHRhZ3MgYXZh aWxhYmxlIGR1cmluZyB0aGUgZmlyc3QgcmVjb3JkOjwvcD4KCgk8dWw+CgkJPGxpPjxjb2Rl PntuYW1lfTwvY29kZT4gOiBXaWxlIEUuIENveW90ZTwvbGk+CgkJPGxpPjxjb2RlPntuYW1l OmlkfTwvY29kZT4gOiB3aWxlX2VfY295b3RlPC9saT4KCQk8bGk+PGNvZGU+e2pvYl90aXRs ZX08L2NvZGU+IDogU2NoZW1lcjwvbGk+CgkJPGxpPjxjb2RlPntxdWFsaXR5fTwvY29kZT4g OiBDdW5uaW5nIERldmlvdXNuZXNzIFBlcnNpc3RlbmNlPC9saT4KCTwvdWw+CgoJPHA+QW5k IGR1cmluZyB0aGUgc2Vjb25kIHJlY29yZCwgdGhlIHNhbWUgcmVwbGFjZW1lbnQgdGFnIG5h bWVzIHdvdWxkIHJlZmVyIHRvIHRoZSBmb2xsb3dpbmcgaXRlbXM6PC9wPgoKCTx1bD4KCQk8 bGk+PGNvZGU+e25hbWV9PC9jb2RlPiA6IFJvYWQgUnVubmVyPC9saT4KCQk8bGk+PGNvZGU+ e25hbWU6aWR9PC9jb2RlPiA6IHJvYWRfcnVubmVyPC9saT4KCQk8bGk+PGNvZGU+e2pvYl90 aXRsZX08L2NvZGU+IDogU2VlZCBleHBlcnQ8L2xpPgoJCTxsaT48Y29kZT57cXVhbGl0eX08 L2NvZGU+IDogU3BlZWQgTWVlcCBtZWVwPC9saT4KCTwvdWw+CgoJPHA+Tm90ZSB0aGF0IHRo ZSBhdHRyaWJ1dGUgY2FsbGVkIDxjb2RlPmlkPC9jb2RlPiB0aGF0IGlzIHBhcnQgb2YgdGhl IDxjb2RlPiZsdDtuYW1lJmd0OzwvY29kZT4gPHNwYW4gY2xhc3M9ImNhcHMiPlhNTDwvc3Bh bj4gdGFnIGhhcyBiZWVuIGV4dHJhY3RlZCBhbmQgaXMgbWFkZSBhdmFpbGFibGUgYXV0b21h dGljYWxseS4gQnkgZGVmYXVsdCwgdGhlIG5hbWVzIG9mIGF0dHJpYnV0ZXMgYXJlIGRlZmlu ZWQgYXMgPGNvZGU+e3RhZ3xhdHRyaWJ1dGV9PC9jb2RlPi4gVGhlIHBpcGUgY2FuIGJlIGFs dGVyZWQgdXNpbmcgPGNvZGU+cGFyYW1fZGVsaW08L2NvZGU+LjwvcD4KCgk8cD5UaGUgPGNv ZGU+e3F1YWxpdHl9PC9jb2RlPiB0YWcgYXBwZWFycyBtb3JlIHRoYW4gb25jZSBpbiB0aGUg ZXhhbXBsZSBkb2N1bWVudCBhYm92ZS4gWW91IGNhbiBpbmZsdWVuY2UgaXRzIG91dHB1dCB1 c2luZyB0aGUgPGNvZGU+Y29uY2F0PC9jb2RlPiBhbmQgPGNvZGU+Y29uY2F0X2RlbGltPC9j b2RlPiBhdHRyaWJ1dGVzLCBlLmcuIHVzaW5nIDxjb2RlPmNvbmNhdF9kZWxpbT0mcXVvdDt8 JnF1b3Q7PC9jb2RlPiB3b3VsZCByZW5kZXIgdGhlIGZvbGxvd2luZyByZXBsYWNlbWVudCB2 YXJpYWJsZSBvbiB0aGUgZmlyc3QgcmVjb3JkOjwvcD4KCgk8dWw+CgkJPGxpPjxjb2RlPntx dWFsaXR5fTwvY29kZT4gOiBDdW5uaW5nfERldmlvdXNuZXNzfFBlcnNpc3RlbmNlPC9saT4K CTwvdWw+CgoJPHA+d2hpbGUgPGNvZGU+Y29uY2F0PSZxdW90OzAmcXVvdDs8L2NvZGU+IHdv dWxkIHJlbmRlciB0aGlzOjwvcD4KCgk8dWw+CgkJPGxpPjxjb2RlPntxdWFsaXR5fTwvY29k ZT4gOiBQZXJzaXN0ZW5jZTwvbGk+Cgk8L3VsPgoKCTxwPlRoZXJlIGFyZSBhbHNvIHNvbWUg c3BlY2lhbCBzdGF0aXN0aWNhbCB0YWdzIGF2YWlsYWJsZSBpbiBlYWNoIHJlY29yZDo8L3A+ CgoJPHVsPgoJCTxsaT48Y29kZT57c21kX3htbF90b3RhbHJlY3N9PC9jb2RlPiA6IHRoZSB0 b3RhbCBudW1iZXIgb2YgcmVjb3JkcyBmb3VuZCBpbiB5b3VyIDxzcGFuIGNsYXNzPSJjYXBz Ij5YTUw8L3NwYW4+IGRvY3VtZW50PC9saT4KCQk8bGk+PGNvZGU+e3NtZF94bWxfcGFnZXJl Y3N9PC9jb2RlPiA6IHRoZSBudW1iZXIgb2YgcmVjb3JkcyBvbiB0aGlzIHBhZ2UgKGlmIG5v dCB1c2luZyBwYWdpbmcsIHRoaXMgaXMgdGhlIHNhbWUgYXMgYWJvdmUpPC9saT4KCQk8bGk+ PGNvZGU+e3NtZF94bWxfcGFnZXN9PC9jb2RlPiA6IHRoZSBudW1iZXIgb2YgYXZhaWxhYmxl IHBhZ2VzPC9saT4KCQk8bGk+PGNvZGU+e3NtZF94bWxfdGhpc3BhZ2V9PC9jb2RlPiA6IHRo ZSBwYWdlIG51bWJlciBvZiB0aGUgY3VycmVudGx5IHZpc2libGUgcGFnZTwvbGk+CgkJPGxp Pjxjb2RlPntzbWRfeG1sX3RoaXNyZWN9PC9jb2RlPiA6IHRoZSByZWNvcmQgbnVtYmVyLCBz dGFydGluZyBhdCAxPC9saT4KCQk8bGk+PGNvZGU+e3NtZF94bWxfdGhpc2luZGV4fTwvY29k ZT4gOiB0aGUgcmVjb3JkIG51bWJlciwgc3RhcnRpbmcgYXQgMDwvbGk+CgkJPGxpPjxjb2Rl PntzbWRfeG1sX3J1bnJlY308L2NvZGU+IDogdGhlIHJlY29yZCBudW1iZXIsIHN0YXJ0aW5n IGF0IDEgYW5kIGluY2x1ZGluZyBhbnkgb2Zmc2V0PC9saT4KCQk8bGk+PGNvZGU+e3NtZF94 bWxfcnVuaW5kZXh9PC9jb2RlPiA6IHRoZSByZWNvcmQgbnVtYmVyLCBzdGFydGluZyBhdCAw IGFuZCBpbmNsdWRpbmcgYW55IG9mZnNldDwvbGk+Cgk8L3VsPgoKCTxoMyBpZD0icGdyZXBz Ij5QYWdpbmcgcmVwbGFjZW1lbnQgdGFnczwvaDM+CgoJPHA+SW4geW91ciA8Y29kZT5wYWdl Zm9ybTwvY29kZT4geW91IGNhbiBlbXBsb3kgYW55IG9mIHRoZSBmb2xsb3dpbmcgcmVwbGFj ZW1lbnQgdGFncyB0byBidWlsZCB1cCBhIG5hdmlnYXRpb24gc3lzdGVtIGZvciBzdGVwcGlu ZyB0aHJvdWdoIHlvdXIgPHNwYW4gY2xhc3M9ImNhcHMiPlhNTDwvc3Bhbj4gZG9jdW1lbnQ6 PC9wPgoKCTx1bD4KCQk8bGk+PGNvZGU+e3NtZF94bWxfdG90YWxyZWNzfTwvY29kZT4gOiB0 aGUgdG90YWwgbnVtYmVyIG9mIHJlY29yZHMgZm91bmQgaW4geW91ciA8c3BhbiBjbGFzcz0i Y2FwcyI+WE1MPC9zcGFuPiBkb2N1bWVudDwvbGk+CgkJPGxpPjxjb2RlPntzbWRfeG1sX3Bh Z2VyZWNzfTwvY29kZT4gOiB0aGUgbnVtYmVyIG9mIHJlY29yZHMgb24gdGhpcyBwYWdlPC9s aT4KCQk8bGk+PGNvZGU+e3NtZF94bWxfcGFnZXN9PC9jb2RlPiA6IHRoZSBudW1iZXIgb2Yg YXZhaWxhYmxlIHBhZ2VzPC9saT4KCQk8bGk+PGNvZGU+e3NtZF94bWxfcHJldnBhZ2V9PC9j b2RlPiA6IHRoZSBwYWdlIG51bWJlciBvZiB0aGUgcHJldmlvdXMgcGFnZSAmIzgyMTI7IGVt cHR5IGlmIG9uIGZpcnN0IHBhZ2U8L2xpPgoJCTxsaT48Y29kZT57c21kX3htbF90aGlzcGFn ZX08L2NvZGU+IDogdGhlIHBhZ2UgbnVtYmVyIG9mIHRoZSBjdXJyZW50IHBhZ2U8L2xpPgoJ CTxsaT48Y29kZT57c21kX3htbF9uZXh0cGFnZX08L2NvZGU+IDogdGhlIHBhZ2UgbnVtYmVy IG9mIHRoZSBuZXh0IHBhZ2UgJiM4MjEyOyBlbXB0eSBpZiBvbiBsYXN0IHBhZ2U8L2xpPgoJ CTxsaT48Y29kZT57c21kX3htbF9yZWNfc3RhcnR9PC9jb2RlPiA6IHRoZSByZWNvcmQgbnVt YmVyIG9mIHRoZSBmaXJzdCByZWNvcmQgb24gdGhpcyBwYWdlIChjb3VudGVkIGZyb20gdGhl IHN0YXJ0IG9mIHRoZSByZWNvcmQgc2V0KTwvbGk+CgkJPGxpPjxjb2RlPntzbWRfeG1sX3Jl Y19lbmR9PC9jb2RlPiA6IHRoZSByZWNvcmQgbnVtYmVyIG9mIHRoZSBsYXN0IHJlY29yZCBv biB0aGlzIHBhZ2UgKGNvdW50ZWQgZnJvbSB0aGUgc3RhcnQgb2YgdGhlIHJlY29yZCBzZXQp PC9saT4KCQk8bGk+PGNvZGU+e3NtZF94bWxfcmVjc19wcmV2fTwvY29kZT4gOiB0aGUgbnVt YmVyIG9mIHJlY29yZHMgb24gdGhlIHByZXZpb3VzIHBhZ2U8L2xpPgoJCTxsaT48Y29kZT57 c21kX3htbF9yZWNzX25leHR9PC9jb2RlPiA6IHRoZSBudW1iZXIgb2YgcmVjb3JkcyBvbiB0 aGUgbmV4dCBwYWdlPC9saT4KCQk8bGk+PGNvZGU+e3NtZF94bWxfdW5pcXVlX2lkfTwvY29k ZT4gOiB0aGUgdW5pcXVlIHJlZmVyZW5jZSBudW1iZXIgYXNzaWduZWQgdG8gdGhpcyBzbWRf eG1sIHRhZyAoc2VlIDxhIGhyZWY9IiNlZzUiPmV4YW1wbGUgNTwvYT4gZm9yIHVzYWdlIG9m IHRoaXMpPC9saT4KCTwvdWw+CgoJPGgyIGlkPSJzbWRfeGlmIj5Vc2FnZTogPGNvZGU+Jmx0 O3R4cDpzbWRfeG1sX2lmX3ByZXYmZ3Q7IC8gJmx0O3R4cDpzbWRfeG1sX2lmX25leHQmZ3Q7 PC9jb2RlPjwvaDI+CgoJPHA+VXNlIHRoZXNlIGNvbnRhaW5lciB0YWdzIHRvIGRldGVybWlu ZSBpZiB0aGVyZSBpcyBhIG5leHQgb3IgcHJldmlvdXMgcGFnZSBhbmQgdGFrZSBhY3Rpb24g aWYgc28uIENhbiBvbmx5IGJlIHVzZWQgaW5zaWRlIDxjb2RlPnBhZ2Vmb3JtPC9jb2RlPiwg dGh1cyBhbGwgPGEgaHJlZj0iI3BncmVwcyI+cGFnaW5nIHJlcGxhY2VtZW50IHZhcmlhYmxl czwvYT4gYXJlIGF2YWlsYWJsZSBpbnNpZGUgdGhlc2UgdGFncy48L3A+Cgo8cHJlIGNsYXNz PSJibG9jayI+PGNvZGUgY2xhc3M9ImJsb2NrIj4mbHQ7dHhwOnNtZF94bWxfaWZfcHJldiZn dDtQcmV2aW91cyBwYWdlJmx0Oy90eHA6c21kX3htbF9pZl9wcmV2Jmd0OwombHQ7dHhwOnNt ZF94bWxfaWZfbmV4dCZndDtOZXh0IHBhZ2UmbHQ7L3R4cDpzbWRfeG1sX2lmX25leHQmZ3Q7 CjwvY29kZT48L3ByZT4KCgk8cD5UaGUgdGFncyBzdXBwcnQgPGNvZGU+Jmx0O3R4cDplbHNl IC8mZ3Q7PC9jb2RlPlNlZSA8YSBocmVmPSIjZWc1Ij5leGFtcGxlIDU8L2E+IGZvciBtb3Jl LjwvcD4KCgk8aDI+RXhhbXBsZXM8L2gyPgoKCTxoMyBpZD0iZWcxIj5FeGFtcGxlIDE6IGRl bGljaW91cyBsaW5rczwvaDM+CgoJPHA+U3dhcCA8Y29kZT5yb2FkcnVubmVyPC9jb2RlPiBp biB0aGlzIGNvZGUgd2l0aCB5b3VyIGRlbGljaW91cyB1c2VybmFtZSB0byBnZXQgeW91ciBv d24gZmVlZDo8L3A+Cgo8cHJlIGNsYXNzPSJibG9jayI+PGNvZGUgY2xhc3M9ImJsb2NrIj4m bHQ7dHhwOnNtZF94bWwgZGF0YT0mcXVvdDtodHRwOi8vZmVlZHMuZGVsaWNpb3VzLmNvbS92 Mi9yc3Mvcm9hZHJ1bm5lciZxdW90OwogICAgIHJlY29yZD0mcXVvdDtpdGVtJnF1b3Q7IGZp ZWxkcz0mcXVvdDt0aXRsZSwgbGluaywgcHViRGF0ZSwgZGVzY3JpcHRpb24mcXVvdDsKICAg ICB3cmFwdGFnPSZxdW90O2RsJnF1b3Q7Jmd0OwogICAmbHQ7ZHQmZ3Q7Jmx0O2EgaHJlZj0m cXVvdDt7bGlua30mcXVvdDsmZ3Q7e3RpdGxlfSZsdDsvYSZndDsmbHQ7L2R0Jmd0OwogICAm bHQ7ZGQmZ3Q7UG9zdGVkOiB7cHViRGF0ZX0mbHQ7YnIgLyZndDt7ZGVzY3JpcHRpb259Jmx0 Oy9kZCZndDsKJmx0Oy90eHA6c21kX3htbCZndDsKPC9jb2RlPjwvcHJlPgoKCTxoMyBpZD0i ZWcyIj5FeGFtcGxlIDI6IHR3aXR0ZXIgZmVlZDwvaDM+Cgo8cHJlIGNsYXNzPSJibG9jayI+ PGNvZGUgY2xhc3M9ImJsb2NrIj4mbHQ7dHhwOnNtZF94bWwKICAgICBkYXRhPSZxdW90O2h0 dHA6Ly90d2l0dGVyLmNvbS9zdGF0dXNlcy91c2VyX3RpbWVsaW5lL3RleHRwYXR0ZXJuLnht bCZxdW90OwogICAgIHJlY29yZD0mcXVvdDtzdGF0dXMmcXVvdDsgZmllbGRzPSZxdW90O2lk LCB0ZXh0LCBjcmVhdGVkX2F0JnF1b3Q7IHNraXA9JnF1b3Q7dXNlciZxdW90OwogICAgIHdy YXB0YWc9JnF1b3Q7dWwmcXVvdDsgbGlua2lmeT0mcXVvdDt0ZXh0JnF1b3Q7Jmd0OwogICAm bHQ7bGkmZ3Q7CiAgICAgICZsdDthIGhyZWY9JnF1b3Q7aHR0cDovL3R3aXR0ZXIuY29tL3Rl eHRwYXR0ZXJuL3N0YXR1c2VzL3tpZH0mcXVvdDsmZ3Q7CiAgICAgICAgIHtjcmVhdGVkX2F0 fQogICAgICAmbHQ7L2EmZ3Q7CiAgICAgICZsdDticiAvJmd0O3t0ZXh0fQogICAmbHQ7L2xp Jmd0OwombHQ7L3R4cDpzbWRfeG1sJmd0Owo8L2NvZGU+PC9wcmU+CgoJPHA+Tm90aWNlIHRo YXQgd2UgPGNvZGU+c2tpcDwvY29kZT4gdGhlIHdob2xlIDxlbT51c2VyPC9lbT4gYmxvY2sg aW4gdGhlIDxzcGFuIGNsYXNzPSJjYXBzIj5YTUw8L3NwYW4+IGRhdGEgc3RyZWFtLiBUaGlz IGlzIGZvciB0d28gcmVhc29uczo8L3A+CgoJPG9sPgoJCTxsaT5pdCBpcyByZWR1bmRhbnQg aW5mb3JtYXRpb24gdGhhdCBhcHBlYXJzIGluIGV2ZXJ5IHJlY29yZCAmIzgyMTI7IHdlIGFs cmVhZHkga25vdyB0byB3aGljaCB1c2VyIHRoZSBmZWVkIGJlbG9uZ3MgYmVjYXVzZSB0aGV5 ciYjODIxNztlIGFsbCBmcm9tIHRoZSBzYW1lIHVzZXI8L2xpPgoJCTxsaT48ZW0+Y3JlYXRl ZF9hdDwvZW0+IGlzIHVzZWQgaW5zaWRlIHRoZSB1c2VyIGJsb2NrIGFzIHdlbGwgYXMgaW4g dGhlIG91dGVyIHN0YXR1cyBibG9jayBzbyB3ZSBnZXQgdHdvIGRhdGVzdGFtcHMsIHdoaWNo IGlzIG5vdCB3aGF0IHdlIHdhbnQgKGlmIHdlIHNpbXBseSB1c2VkIDxjb2RlPmNvbmNhdD0m cXVvdDswJnF1b3Q7PC9jb2RlPiB0byBvbmx5IGdyYWIgb25lIG9mIHRoZSBjcmVhdGVkX2F0 IGVudHJpZXMsIHRoZSBsYXN0IG9uZSB3b3VsZCBwcmV2YWlsICYjODIxMjsgdGhlIG9uZSBm cm9tIHRoZSB1c2VyIGJsb2NrKTwvbGk+Cgk8L29sPgoKCTxoMyBpZD0iZWczIj5FeGFtcGxl IDM6IGxpbWl0IGFuZCBwYWdpbmc8L2gzPgoKCTxwPlZpZXdpbmcgdGhlIEkgTG92ZSA8c3Bh biBjbGFzcz0iY2FwcyI+VFhQPC9zcGFuPiBmZWVkIDMgcmVjb3JkcyBhdCBhIHRpbWUuIE5v dGUgdGhhdCBzaW5jZSB0aGUgc2l0ZSBpcyBub3QgdXBkYXRlZCBmcmVxdWVudGx5LCB0aGUg Y2FjaGVfdGltZSBvZiA4NjQwMCBzZWNvbmRzICgxIGRheSkgaXMgYW1wbGUgdG8gYXZvaWQg aGFtbWVyaW5nIHRoZSBuZXR3b3JrOjwvcD4KCjxwcmUgY2xhc3M9ImJsb2NrIj48Y29kZSBj bGFzcz0iYmxvY2siPiZsdDt0eHA6c21kX3htbAogICAgIGRhdGE9JnF1b3Q7aHR0cDovL2Zl ZWRzLmZlZWRidXJuZXIuY29tL3dlbG92ZXR4cCZxdW90OwogICAgIHJlY29yZD0mcXVvdDtp dGVtJnF1b3Q7IGZpZWxkcz0mcXVvdDt0aXRsZSxkZXNjcmlwdGlvbiwgbGluaywgcHViRGF0 ZSZxdW90OwogICAgIHdyYXB0YWc9JnF1b3Q7dWwmcXVvdDsgbGltaXQ9JnF1b3Q7MyZxdW90 OyBwYWdlZm9ybT0mcXVvdDtwYWdlciZxdW90OwogICAgIGNhY2hlX3RpbWU9JnF1b3Q7ODY0 MDAmcXVvdDsmZ3Q7CiAgICZsdDtsaSZndDsKICAgICAgJmx0O2EgaHJlZj0mcXVvdDt7bGlu a30mcXVvdDsmZ3Q7CiAgICAgICAgIHt0aXRsZX0KICAgICAgJmx0Oy9hJmd0OyZsdDtzcGFu IGNsYXNzPSZxdW90O3B1Ymxpc2hlZCZxdW90OyZndDt7cHViRGF0ZX0mbHQ7L3NwYW4mZ3Q7 CiAgICAgICZsdDticiAvJmd0O3tkZXNjcmlwdGlvbn0KICAgJmx0Oy9saSZndDsKJmx0Oy90 eHA6c21kX3htbCZndDsKPC9jb2RlPjwvcHJlPgoKCTxwPkFuZCBpbiBmb3JtIDxjb2RlPnBh Z2VyPC9jb2RlPjo8L3A+Cgo8cHJlIGNsYXNzPSJibG9jayI+PGNvZGUgY2xhc3M9ImJsb2Nr Ij5QYWdlIHtzbWRfeG1sX3RoaXNwYWdlfSBvZiB7c21kX3htbF9wYWdlc30KJmx0O3R4cDpu ZXdlciZndDtQcmV2aW91cyBwYWdlJmx0Oy90eHA6bmV3ZXImZ3Q7CiZsdDt0eHA6b2xkZXIm Z3Q7TmV4dCBwYWdlJmx0Oy90eHA6b2xkZXImZ3Q7CjwvY29kZT48L3ByZT4KCgk8cD5JZiB5 b3Ugd2FudGVkIHRvIHZpZXcgdGhlIGxhc3QgdGhyZWUgZW50cmllcyBpbiB0aGUgZmVlZCBp bnN0ZWFkIG9mIHRoZSBmaXJzdCB0aHJlZSwgeW91IGNvdWxkIHNldCA8Y29kZT5vZmZzZXQ9 JnF1b3Q7LTMmcXVvdDs8L2NvZGU+LjwvcD4KCgk8aDMgaWQ9ImVnNCI+RXhhbXBsZSA0OiB1 c2luZyA8Y29kZT5wYWdldmFyPC9jb2RlPjwvaDM+CgoJPHA+QWRkaW5nIDxjb2RlPnBhZ2V2 YXI9JnF1b3Q7eG1scGcmcXVvdDs8L2NvZGU+IHRvIGV4YW1wbGUgMyBhbGxvd3MgcGFnaW5n IGluZGVwZW5kZW50bHkgb2YgdHhwOm9sZGVyIGFuZCB0eHA6bmV3ZXIgdGFncy4gWW91IHRo ZW4gbmVlZCB0byBidWlsZCB5b3VyIG93biBsaW5rcyBpbiB5b3VyIDxjb2RlPnBhZ2VyPC9j b2RlPiBmb3JtLCBsaWtlIHRoaXM6PC9wPgoKPHByZSBjbGFzcz0iYmxvY2siPjxjb2RlIGNs YXNzPSJibG9jayI+UGFnZSB7c21kX3htbF90aGlzcGFnZX0gb2Yge3NtZF94bWxfcGFnZXN9 IHwKICAgU2hvd2luZyByZWNvcmRzIHtzbWRfeG1sX3JlY19zdGFydH0gdG8ge3NtZF94bWxf cmVjX2VuZH0KICAgb2Yge3NtZF94bWxfdG90YWxyZWNzfSB8CiAgJmx0O2EgaHJlZj0mcXVv dDs/eG1scGc9e3NtZF94bWxfcHJldnBhZ2V9JnF1b3Q7Jmd0O1ByZXZpb3VzIHtzbWRfeG1s X3JlY3NfcHJldn0mbHQ7L2EmZ3Q7CiAgJmx0O2EgaHJlZj0mcXVvdDs/eG1scGc9e3NtZF94 bWxfbmV4dHBhZ2V9JnF1b3Q7Jmd0O05leHQge3NtZF94bWxfcmVjc19uZXh0fSZsdDsvYSZn dDsKPC9jb2RlPjwvcHJlPgoKCTxwPlRoYXQgY3JlYXRlcyBsaW5rcyB0byBuZXh0IGFuZCBw cmV2aW91cyByZWNvcmQgc2V0cyB1c2luZyB0aGUgYXNzaWduZWQgPGNvZGU+cGFnZXZhcjwv Y29kZT4gYXMgdGhlIDxzcGFuIGNsYXNzPSJjYXBzIj5VUkw8L3NwYW4+IHBhcmFtZXRlci48 L3A+CgoJPGgzIGlkPSJlZzUiPkV4YW1wbGUgNTogY29uZGl0aW9uYWwgbmF2aWdhdGlvbiBh bmQgdGhlIHVuaXF1ZSBJRDwvaDM+CgoJPHA+QWdhaW4gdXNpbmcgZXhhbXBsZSAzLCBpZiB5 b3UgdXNlZCA8Y29kZT5wYWdldmFyPSZxdW90O1NNRF9YTUxfVU5JUVVFX0lEJnF1b3Q7PC9j b2RlPiB0aGUgcGFnZXZhciB3b3VsZCBiZSBhc3NpZ25lZCB0aGUgdmFsdWUgPGNvZGU+ZjI5 MGI4PC9jb2RlPi4gSW4gdGhpcyBjYXNlIHdlIGNvdWxkIHVzZSBpdCBsaWtlIHRoaXM6PC9w PgoKPHByZSBjbGFzcz0iYmxvY2siPjxjb2RlIGNsYXNzPSJibG9jayI+UGFnZSB7c21kX3ht bF90aGlzcGFnZX0gb2Yge3NtZF94bWxfcGFnZXN9IHwKICAgU2hvd2luZyByZWNvcmRzIHtz bWRfeG1sX3JlY19zdGFydH0gdG8ge3NtZF94bWxfcmVjX2VuZH0KICAgb2Yge3NtZF94bWxf dG90YWxyZWNzfSB8CiZsdDt0eHA6c21kX3htbF9pZl9wcmV2Jmd0OwogICZsdDthIGhyZWY9 JnF1b3Q7P3tzbWRfeG1sX3VuaXF1ZV9pZH09e3NtZF94bWxfcHJldnBhZ2V9JnF1b3Q7Jmd0 O1ByZXZpb3VzIHtzbWRfeG1sX3JlY3NfcHJldn0mbHQ7L2EmZ3Q7CiZsdDsvdHhwOnNtZF94 bWxfaWZfcHJldiZndDsKJmx0O3R4cDpzbWRfeG1sX2lmX25leHQmZ3Q7CiAgJmx0O2EgaHJl Zj0mcXVvdDs/e3NtZF94bWxfdW5pcXVlX2lkfT17c21kX3htbF9uZXh0cGFnZX0mcXVvdDsm Z3Q7TmV4dCB7c21kX3htbF9yZWNzX25leHR9Jmx0Oy9hJmd0OwombHQ7L3R4cDpzbWRfeG1s X2lmX25leHQmZ3Q7CjwvY29kZT48L3ByZT4KCgk8cD5Ob3RlIHRoYXQgd2UgYXJlIHVzaW5n IHRoZSBjb25kaXRpb25hbCB0YWdzIHRvIG9ubHkgZGlzcGxheSB0aGUgbmV4dCBhbmQgcHJl dmlvdXMgbGlua3MgaWYgdGhlIG5leHQvcHJldiBwYWdlIGV4aXN0cyBhbmQgYWxzbyB0aGF0 IHRoZSA8c3BhbiBjbGFzcz0iY2FwcyI+VVJMPC9zcGFuPiBsaW5rIGlzIGdlbmVyYXRlZCB1 c2luZyA8Y29kZT57c21kX3htbF91bmlxdWVfaWR9PC9jb2RlPi4gWW91IGNvdWxkIGNvbmNl aXZhYmx5IHVzZSB0aGlzIHNhbWUgcGFnZWZvcm0gb24gbW9yZSB0aGFuIG9uZSA8c3BhbiBj bGFzcz0iY2FwcyI+WE1MPC9zcGFuPiBmZWVkIG9uIHRoZSBzYW1lIHBhZ2UgYW5kIG5hdmln YXRlIHRoZSB0d28gZmVlZHMgaW5kcGVuZWRlbnRseSwgdGhvdWdoIHlvdSB3b3VsZCBoYXZl IHRvIHdvcmsgb3V0IGEgY2xldmVyIHdheSBvZiBhbWFsZ2FtYXRpbmcgdGhlIDxzcGFuIGNs YXNzPSJjYXBzIj5VUkw8L3NwYW4+IHZhcnMgKHBlcmhhcHMgdXNpbmcgdGhlIGFkaV9ncHMg cGx1Z2luKS48L3A+CgoJPGgzIGlkPSJlZzYiPkV4YW1wbGUgNjogaW5zZXJ0aW5nIDxzcGFu IGNsYXNzPSJjYXBzIj5YTUw8L3NwYW4+IGRhdGEgaW50byA8c3BhbiBjbGFzcz0iY2FwcyI+ VFhQPC9zcGFuPjwvaDM+Cgo8cHJlIGNsYXNzPSJibG9jayI+PGNvZGUgY2xhc3M9ImJsb2Nr Ij4mbHQ7dHhwOnNtZF94bWwgZGF0YT0mcXVvdDtodHRwOi8vZmVlZHMuZGVsaWNpb3VzLmNv bS92Mi9yc3Mvcm9hZHJ1bm5lciZxdW90OwogICAgIHJlY29yZD0mcXVvdDtpdGVtJnF1b3Q7 IGZpZWxkcz0mcXVvdDt0aXRsZXx1dGl0bGUsIGxpbmssIHB1YkRhdGUsIGRlc2NyaXB0aW9u LCBjYXRlZ29yeSZxdW90OwogICAgIGZvcm1hdD0mcXVvdDtwdWJEYXRlfGRhdGV8JVktJW0t JWQgJUg6JUk6JVMsCiAgICAgZGVzY3JpcHRpb258ZXNjYXBlLCB0aXRsZXxlc2NhcGUsIHV0 aXRsZXxzYW5pdGl6ZXx1cmxfdGl0bGUmcXVvdDsmZ3Q7CiAgICZsdDt0eHA6c21kX3F1ZXJ5 IHF1ZXJ5PSZxdW90O0lOU0VSVCBJTlRPIHRleHRwYXR0ZXJuCiAgICAgU0VUIFBvc3RlZD0m IzM5O3twdWJEYXRlfSYjMzk7LCB1cmxfdGl0bGU9JiMzOTt7dXRpdGxlfSYjMzk7LAogICAg IFRpdGxlPSYjMzk7e3RpdGxlfSYjMzk7LCBjdXN0b21fMz0mIzM5O3tsaW5rfSYjMzk7LAog ICAgIEJvZHk9JiMzOTt7ZGVzY3JpcHRpb259JiMzOTssIEJvZHlfaHRtbD0mIzM5O3tkZXNj cmlwdGlvbn0mIzM5OywKICAgICBTZWN0aW9uPSYjMzk7bGlua3MmIzM5OywgQ2F0ZWdvcnkx PSYjMzk7ZGVsaWNpb3VzJiMzOTssCiAgICAga2V5d29yZHM9JiMzOTt7Y2F0ZWdvcnl9JiMz OTsmcXVvdDsgLyZndDsKJmx0Oy90eHA6c21kX3htbCZndDsKPC9jb2RlPjwvcHJlPgoKCTxw PlRoaXMgZXhhbXBsZSB0YWtlcyBhIGRlbGljaW91cyBmZWVkLCByZWZvcm1hdHMgdGhlIHZh cmlvdXMgZW50cmllcyBhbmQgaW5zZXJ0cyB0aGVtIGludG8gdGhlIHRleHRwYXR0ZXJuIHRh YmxlIGluIGEgZGVkaWNhdGVkIHNlY3Rpb24uIE5vdGUgdGhhdCB0aGUgZGF0ZSBmb3JtYXQg aXMgYWx0ZXJlZCBhbmQgdGhlIGZlZWQmIzgyMTc7cyB0aXRsZSBpcyBjb252ZXJ0ZWQgdG8g YSBzYW5pdGl6ZWQgPHNwYW4gY2xhc3M9ImNhcHMiPlRYUDwvc3Bhbj4gPHNwYW4gY2xhc3M9 ImNhcHMiPlVSTDwvc3Bhbj4gc3VpdGFibGUgZm9yIHRoZSB1cmxfdGl0bGUgZmllbGQuPC9w PgoKCTxoMiBjbGFzcz0iY2hhbmdlbG9nIj5DaGFuZ2Vsb2c8L2gyPgoKCTx1bD4KCQk8bGk+ MDIgSmFuIDEwIHwgMC4xIHwgSW5pdGlhbCByZWxlYXNlPC9saT4KCQk8bGk+MDMgSmFuIDEw IHwgMC4yIHwgQWRkZWQgY2FjaGUgc3VwcG9ydCAodGhhbmtzIHZhcmlhYXMpIDsgYWRkZWQg PGNvZGU+bGltaXQ8L2NvZGU+LCA8Y29kZT5vZmZzZXQ8L2NvZGU+IGFuZCBwYWdpbmcgZmVh dHVyZXMgOyBhZGRlZCA8Y29kZT5saW5raWZ5PC9jb2RlPiAodGhhbmtzIEphcm8pPC9saT4K CQk8bGk+MDUgSmFuIDEwIHwgMC4yMSB8IFN1cHBvcnRzIGh0dHBzOi8vIGZlZWRzICh0aGFu a3MgcGhvdG9ub21hZCkgOyBhZGRlZCA8Y29kZT50cmFuc3BvcnQ8L2NvZGU+LCA8Y29kZT5k ZWZhdWx0czwvY29kZT4gYW5kIDxjb2RlPnNldF9lbXB0eTwvY29kZT4gYXR0cmlidXRlczwv bGk+CgkJPGxpPjEzIEphbiAxMCB8IDAuMjIgfCBBZGRlZCA8Y29kZT5saW5lX2xlbmd0aDwv Y29kZT4gKHRoYW5rcyBuYXJkbyk8L2xpPgoJCTxsaT4xNyBKYW4gMTAgfCAwLjMgfCBFbmFi bGVkIDxzcGFuIGNsYXNzPSJjYXBzIj5VUkw8L3NwYW4+IHBhcmFtcyB0byBiZSBwYXNzZWQg aW4gdGhlIDxjb2RlPmRhdGE8L2NvZGU+IGF0dHJpYnV0ZSA7IGFkZGVkIDxjb2RlPmZvcm1h dDwvY29kZT4gOyBkZXByZWNhdGVkIDxjb2RlPmxpbmtpZnk8L2NvZGU+IDsgPGNvZGU+cGFy YW1fZGVsaW08L2NvZGU+IGRlZmF1bHQgaXMgbm93IHBpcGU8L2xpPgoJPC91bD4KCjwvZGl2 Pgo8IS0tICoqKiBCRUdJTiBQTFVHSU4gQ1NTICoqKiAtLT4KPHN0eWxlIHR5cGU9InRleHQv Y3NzIj4KI3NtZF9oZWxwIHsgbGluZS1oZWlnaHQ6MS41IDt9CiNzbWRfaGVscCBjb2RlIHsg Zm9udC13ZWlnaHQ6Ym9sZDsgZm9udDogMTA1JS8xMzAlICJDb3VyaWVyIE5ldyIsIGNvdXJp ZXIsIG1vbm9zcGFjZTsgYmFja2dyb3VuZC1jb2xvcjogI0ZGRkZDQzt9CiNzbWRfaGVscCBj b2RlLmJsb2NrIHsgZm9udC13ZWlnaHQ6bm9ybWFsOyBib3JkZXI6MXB4IGRvdHRlZCAjOTk5 OyBiYWNrZ3JvdW5kLWNvbG9yOiAjZjBlNjhjOyBkaXNwbGF5OmJsb2NrOyBtYXJnaW46MTBw eCAxMHB4IDIwcHg7IHBhZGRpbmc6MTBweDsgfQojc21kX2hlbHAgYTpsaW5rLCAjc21kX2hl bHAgYTp2aXNpdGVkIHsgY29sb3I6ICMwMGM7IHRleHQtZGVjb3JhdGlvbjogbm9uZTsgYm9y ZGVyLWJvdHRvbTogMXB4IHNvbGlkIGJsdWU7IHBhZGRpbmctYm90dG9tOjFweDt9CiNzbWRf aGVscCBhOmhvdmVyLCAjc21kX2hlbHAgYTphY3RpdmUgeyBjb2xvcjogYmx1ZTsgdGV4dC1k ZWNvcmF0aW9uOiBub25lOyBib3JkZXItYm90dG9tOiAycHggc29saWQgYmx1ZTsgcGFkZGlu Zy1ib3R0b206MXB4O30KI3NtZF9oZWxwIGgxIHsgY29sb3I6ICMzNjk7IGZvbnQ6IDIwcHgg R2VvcmdpYSwgc2Fucy1zZXJpZjsgbWFyZ2luOiAwOyB0ZXh0LWFsaWduOiBjZW50ZXI7IH0K I3NtZF9oZWxwIGgyIHsgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkIGJsYWNrOyBwYWRkaW5n OjEwcHggMCAwOyBjb2xvcjogIzM2OTsgZm9udDogMTdweCBHZW9yZ2lhLCBzYW5zLXNlcmlm OyB9CiNzbWRfaGVscCBoMyB7IGNvbG9yOiAjMDc5OyBmb250OiBib2xkIDEycHggQXJpYWws IHNhbnMtc2VyaWY7IGxldHRlci1zcGFjaW5nOiAxcHg7IG1hcmdpbjogMTBweCAwIDA7dGV4 dC10cmFuc2Zvcm06IHVwcGVyY2FzZTsgdGV4dC1kZWNvcmF0aW9uOnVuZGVybGluZTt9CiNz bWRfaGVscCBoNCB7IGZvbnQ6IGJvbGQgMTFweCBBcmlhbCwgc2Fucy1zZXJpZjsgbGV0dGVy LXNwYWNpbmc6IDFweDsgbWFyZ2luOiAxMHB4IDAgMCA7dGV4dC10cmFuc2Zvcm06IHVwcGVy Y2FzZTsgfQojc21kX2hlbHAgLmF0bm0geyBmb250LXdlaWdodDpib2xkOyBjb2xvcjojMzNk OyB9CiNzbWRfaGVscCAubWFuZCB7IGJhY2tncm91bmQ6I2VlZTsgYm9yZGVyOjFweCBkb3R0 ZWQgIzk5OTsgfQojc21kX2hlbHAgdGFibGUge3dpZHRoOjkwJTsgdGV4dC1hbGlnbjpjZW50 ZXI7IHBhZGRpbmctYm90dG9tOjFlbTt9CiNzbWRfaGVscCB0ZCwgI3NtZF9oZWxwIHRoIHti b3JkZXI6MXB4IHNvbGlkICM5OTk7IHBhZGRpbmc6LjVlbSAwO30KI3NtZF9oZWxwIHVsIHsg bGlzdC1zdHlsZS10eXBlOnNxdWFyZTsgfQojc21kX2hlbHAgLnJlcXVpcmVkIHtjb2xvcjpy ZWQ7fQojc21kX2hlbHAgbGkgeyBtYXJnaW46NXB4IDIwcHggNXB4IDMwcHg7IH0KI3NtZF9o ZWxwIC5icmVhayB7IG1hcmdpbi10b3A6NXB4OyB9Cjwvc3R5bGU+CjwhLS0gKioqIEVORCBQ TFVHSU4gQ1NTICoqKiAtLT4KIjtzOjM6Im1kNSI7czozMjoiMzgzNTQ3MWEzMTg1YTIzYWMy NzJhODcyN2MyNGJiZjQiO30=